java ee_EE JSP:使用自定义标签库生成动态内容

news/2024/7/10 0:20:40 标签: java, vue, python, javascript, html
htmledit_views">
<a class=html" title=java>java ee" width="403px" height="256px" style="outline: none;" />

html" title=java>java ee

在Web应用程序中开发View层时,您希望尽量不要重复JSP文件中的内容。 JSP spec API允许您通过使用标记库来减少这种重复。 定制JSP标记是用户定义的xml标记元素,您可以将其插入JSP文件以替换为一些动态内容。

这是一个使用自定义JSP标记的简单jsp示例,该标记插入服务器时间戳记值:

<%@ taglib prefix="myapp" tagdir="/WEB-INF/myappTags" %>
<!DOCTYPE html>
<html>
    <body>
        <h1>Hello World!</h1>
        <p>Page served on <myapp:serverTime pattern="yyyy-MM-dd HH:mm:ss"/></p>
    </body>
</html>

JSP标记还可以允许您将参数作为标记的属性传递。 在上面的示例中, <myapp:serverTime>标记使用自定义pattern属性来控制日期字符串的格式。

JSP标签还可以与子标签或任何HTML内容元素嵌套在一起。 嵌套的JSP标记可以为您提供一种有条件地呈现封闭内容的方法。 由于XML结构的缘故,使用标记来呈现条件内容更为冗长,但是它消除了在JSP中使用直接Scriptlet代码的麻烦。

有两种创建自定义JSP标记的方法。 第一种方法是使用纯Java代码实现标签,然后将其注册到XML taglib定义文件中。 我现在将略过此方法,并向您展示另一种更简单的方法。

第二种方法使用类似于JSP页面的“标记文件”来构造标记(请记住,JSP标记只不过是某些内容的占位符!)。 我将向您展示上面示例的第二种方法。 首先在src/main/webapp/WEB-INF/tags/myapp项目文件夹下创建一个serverTime.tag文件。

<%@ attribute name="pattern" required="true" %>
<%@ tag import="html" title=java>java.util.Date, html" title=java>java.text.SimpleDateFormat" %>
<%= new SimpleDateFormat(pattern).format(new Date()) %>

标记文件的实现取决于文件命名和位置的简单约定。 请注意, src/main/webapp/WEB-INF/tags目录是必需的路径。 在此文件夹中,您可以创建要组织标记文件的任何子文件夹。 在我们的例子中,它是myapp目录。 标记文件可以与您通常创建的任何JSP文件一样,除了标记指令几乎没有什么不同。 您可以查看JSP规范以获取它们的完整列表。 无论您从标签文件中输出什么,该文件都会被插入并替换标签的调用者。 请注意,我如何使用pattern属性参数来允许用户更改日期模式,它可以在Scriptlet Java代码内的标记文件中作为变量使用。

由于您可以像使用JSP一样编写标记文件,因此我再次提醒即使在标记文件内部也过度使用Java代码Scriptlet。 如果必须调用Java代码,请尝试将代码包装并用单行调用替换,或使用纯Java代码编写Tag实现; 特别是如果您涉及非常复杂的业务逻辑。 这将使调试和维护变得更加容易。

JSP标记提供了一种在Web应用程序中构造View层的强大方法。 它可以帮助您重用代码或内容,并生成特定的响应。

翻译自: https://www.html" title=java>javacodegeeks.com/2015/02/ee-jsp-generating-dynamic-content-with-custom-tag-libraries.html

html" title=java>java ee


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

相关文章

百数自定义规则上线,消息提醒还可以这么玩?

当代职场人上班的日常&#xff0c;逐渐离不开办公软件的配合。面对复杂的业务场景亦或是跨部门的项目合作&#xff0c;一些繁琐的工作流程&#xff0c;通过消息提醒功能可以大大减少对接时间投入&#xff0c;让工作事项的推进更高效。 既然消息提醒功能已渗透到日常工作的方方面…

hdu 1164 Eddy's research I (数论)

Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 2 Accepted Submission(s) : 2 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description Eddys interest is very extensive, recently he i…

jooq 事务_使用jOOQ和JavaFX将SQL数据转换为图表

jooq 事务在最近的过去&#xff0c;我们已经展示了Java 8和函数式编程如何在使用jOOQ和Java 8 lambda和Streams进行SQL数据的函数式数据转换时为Java开发人员带来新的视角。 今天&#xff0c;我们将这一步骤更进一步&#xff0c;将数据转换为JavaFX XYChart.Series以根据数据生…

百数产品更新| 进来,给打印换个装备加速一下!

大家期待已久的百数全新打印模板来啦&#xff01;打印时可以直接使用系统模版&#xff0c;当我们需要对录入的数据进行个性化打印时也可以在表单设置里对该表单进行自定义模版设置。 本次更新后不仅设计界面全新&#xff0c;更有连续打印、打印外链二维码等众多好功能等你来体…

[转]不要做浮躁的嵌入式工程师

不要做浮躁的嵌入式工程师 转抄网上的一个帖子&#xff1a; 1. 不要看到别人的回复&#xff0c;第一句话就说&#xff1a;给个代码吧&#xff01;你应该想想为什么。当你自己想出来再参考别人的提示&#xff0c;你就知道自己和别人思路的差异。 2. 初学者请不要看太多的…

数据库与服务器编码设置

一.数据库编码和字段编码为utf-8 show variables like %character%;ALTER TABLE biz_power_plan DEFAULT CHARACTER SET utf8; ALTER TABLE biz_power_plan CHANGE cust_name cust_name VARCHAR(500) CHARACTER SET utf8;二.linux服务器编码设置 1.查看当前语言包 echo $LAN…

junit5_使用@Rule在JUnit中测试文件和目录

junit5感谢TemporaryFolder Rule在JUnit中使用文件和目录进行测试很容易。 在JUnit中&#xff0c;规则( Rule )可以用作夹具设置和清除方法( org.junit.Before &#xff0c; org.junit.After &#xff0c; org.junit.BeforeClass和org.junit.AfterClass )的替代或补充&#xff…

百数自定义规则上线,消息提醒还可以这么玩

当代职场人上班的日常&#xff0c;逐渐离不开办公软件的配合。面对复杂的业务场景亦或是跨部门的项目合作&#xff0c;一些繁琐的工作流程&#xff0c;通过消息提醒功能可以大大减少对接时间投入&#xff0c;让工作事项的推进更高效。 既然消息提醒功能已渗透到日常工作的方方…