jstl标签_EE JSP:使用JSTL标记库生成动态内容

news/2024/5/18 15:24:31 标签: java, python, spring, jsp, jstl
<a class=jstl标签" width="403px" height="256px" style="outline: none;" />

jstl标签

除了在JSP中编写自己的定制标记外,您还将发现Java EE实际上提供了一组Java标准标记库(JSTL)供您使用。 这些内置标签包括重复(for-loop)标签,条件标签,变量声明和输出标签等。库还带有许多实用程序功能和国际消息格式标签。 这是一个看起来像的例子。

java"><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
    <body>
        <h1>JSTL Examples</h1>
        <h2>List of Application Context: ${applicationScope}</h2>
        <table>
            <c:forEach var="entry" items="${applicationScope}">
            <tr>
                <td>${entry.key}</td>
                <td>
                    <c:out value="${entry.value}"/>
                </td>
            </tr>
            </c:forEach>
        </table>
       
        <h2>List of Session Context: ${sessionScope}</h2>
        <table>
            <c:forEach var="entry" items="${sessionScope}">
            <tr>
                <td>${entry.key}</td>
                <td>
                    <c:out value="${entry.value}"/>
                </td>
            </tr>
            </c:forEach>
        </table>
       
        <h2>List of Page Context: ${pageScope}</h2>
        <table>
            <c:forEach var="entry" items="${pageScope}">
            <tr>
                <td>${entry.key}</td>
                <td>
                    <c:out value="${entry.value}"/>
                </td>
            </tr>
            </c:forEach>
        </table>
       
        <h2>List of Request Context: ${requestSope}</h2>
        <table>
            <c:forEach var="entry" items="${requestSope}">
            <tr>
                <td>${entry.key}</td>
                <td>
                    <c:out value="${entry.value}"/>
                </td>
            </tr>
            </c:forEach>
        </table>
       
        <h2>List of Query Parameters: ${param}</h2>
        <table>
            <c:forEach var="entry" items="${param}">
            <tr>
                <td>${entry.key}</td>
                <td>
                    <c:out value="${entry.value}"/>
                </td>
            </tr>
            </c:forEach>
        </table>
       
        <h2>List of Header Parameters: ${header}</h2>
        <table>
            <c:forEach var="entry" items="${header}">
            <tr>
                <td>${entry.key}</td>
                <td>
                    <c:out value="${entry.value}"/>
                </td>
            </tr>
            </c:forEach>
        </table>       
       
        <h2>List of Cookies: ${cookie}</h2>
        <table>
            <c:forEach var="entry" items="${cookie}">
            <tr>
                <td>${entry.key}</td>
                <td>
                    <c:out value="${entry.value}"/>
                </td>
            </tr>
            </c:forEach>
        </table>
    </body>
</html>

我在这里使用了核心标签来显示一些隐式变量的映射条目。 您可以在Spec的示例页面顶部定义的那些标签声明中进行更多研究。 这些代码来自GitHub的jsp-example 。

GLASSFISH注意:在GlassFish 3/4中部署以上示例时,您将遇到NullPointerException并导致页面导致错误。 事实证明,GF服务器在ServletContext(应用程序范围)中添加了一个名为com.sun.jsp.taglibraryCache的内部变量,该变量在调用toString()时会抛出NPE! 要解决此问题,我创建了jstl-example2.jsp

将$ {entry.value}包装到自定义JSTL函数中,从而保证返回输出而不会引发异常。 因此,吸取的教训是,您应该始终返回一个String,并且在覆盖时不要抛出ExceptionJava类的toString()。 这只是不好的做法。

翻译自: https://www.javacodegeeks.com/2015/02/ee-jsp-generating-dynamic-content-jstl-tag-libraries.html

jstl标签


http://www.niftyadmin.cn/n/1707779.html

相关文章

kafka streams_另一个Java 8 Lamdbas和Streams示例

kafka streams我一直落后于Java 8所关注的功能&#xff0c;因此在这篇文章中&#xff0c;我将简要介绍我对lambda和stream的初步经验。 和往常一样&#xff0c;我将专注于Podcast课程&#xff1a; package org.codingpedia.learning.java.core;import java.util.Comparator;pu…

guava_使用Guava进行测试集合的实现

guava我目前正在为LibFX添加一项新功能&#xff0c;为此我创建了一些类似于Java Collections Framework中的自定义集合的自定义集合。 我一直在寻找可以与之对抗的测试&#xff0c;并很高兴地发现Google的Guava包含了我所需要的&#xff1a;一个庞大的测试套件&#xff0c;它针…

pdf可不可以批量命名_不可将您的方法命名为“等于”

pdf可不可以批量命名(当然&#xff0c;除非您确实重写了Object.equals() )。 我偶然发现了用户Frank的一个非常奇怪的Stack Overflow问题&#xff1a; 为什么Java的Area&#xff03;equals方法不能覆盖Object&#xff03;equals&#xff1f;有趣的是&#xff0c;有一个Area.equ…

2019年Java常见面试问题

文章目录一.JAVAJava中8大基本类型占用的字节数?和equals的区别是什么?final在java中有什么作用?java容器有哪些?HashMap和Hashtable有什么区别?HashMap的实现原理?ArrayList和LinkedList的区别是什么?sleep()和wait()有什么区别?在java程序中怎么保证多线程的运行安全…

full gc_在运行时打开GC日志记录

full gc总是有下一个JVM表现不佳。 而且&#xff0c;您内心深知&#xff0c;如果您只有少数启动选项可以揭示有关正在发生的事情的更多信息&#xff0c;则您可能有机会真正修复该死的东西。 但是不&#xff0c;您需要的标志( -XX&#xff1a; HeapDumpOnOutOfMemoryError或-XX&…

java基础总结大全

文章目录一、基础知识&#xff1a;1、JVM、JRE和JDK的区别&#xff1a;2、环境变量path和classpath的作用是什么&#xff1f;3、变量有什么用&#xff1f;为什么要定义变量&#xff1f;什么时候用&#xff1f;4、&和&&的区别?5、标示符命名规则6、数据类型&#x…

oauth2_教程:如何实现Java OAuth 2.0以使用GitHub和Google登录

oauth2将Google和GitHub OAuth登录添加到Java应用程序的指南 我们添加到Takipi的最新功能之一是3rd party登录。 如果您像我一样懒惰&#xff0c;那么我想您也希望跳过填写表单和输入新密码的操作。 只要有权限&#xff0c;许多人都希望使用第三方登录&#xff0c;只要他们要求…