java ee jsp_EE JSP:使用自定义标签库生成动态内容
java ee jsp
在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="java.util.Date, 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.javacodegeeks.com/2015/02/ee-jsp-generating-dynamic-content-with-custom-tag-libraries.html
java ee jsp
java ee jsp_EE JSP:使用自定义标签库生成动态内容相关推荐
- EE JSP:使用自定义标签库生成动态内容
在Web应用程序中开发View层时,您希望尽量不要重复JSP文件中的内容. JSP spec API允许您通过使用标记库来减少这种重复. 定制JSP标记是用户定义的xml标记元素,您可以将其插入JSP ...
- jsp导入jstl标签库_EE JSP:使用JSTL标记库生成动态内容
jsp导入jstl标签库 除了在JSP中编写自己的定制标记之外,您还将发现Java EE实际上提供了一组Java标准标记库(JSTL)供您使用. 这些内置标签包括重复(for-loop)标签,条件标签 ...
- java ee jsp_EE JSP:Servlet的反向外套
java ee jsp 仅当页面数量少或需要对生成的内容(二进制PDF等)进行精细控制时,才可以从Servlet生成HTML. 对于大多数应用程序,输出将是HTML,我们需要一种更好的方法来完成此操作 ...
- EE JSP:使用JSTL标记库生成动态内容
除了在JSP中编写自己的定制标记之外,您还将发现Java EE实际上提供了一组Java标准标记库(JSTL)供您使用. 这些内置标签包括重复(for-loop)标签,条件标签,变量声明和输出标签等.库 ...
- java自定义标签库的开发
java自定义标签库的开发 第14章 自定义标签库的开发 14.1 自定义标签介绍 14.2 HelloWorld标签的开发 14.3 开发带Body的标签库 14.4 多个标签的嵌套 14.5 开发 ...
- Java EE之JSP
1.使用JSP的原因 编写Servlet代码的时候,向响应中输出HTML文档是非常不方便的. PrintWriter writer = response.getWriter(); writer.app ...
- Java-Web JSTL标签库、自定义标签库和MVC设计模式
目录 一.JSTL标签库 1.什么是JSTL 2.JSTL标签库 3.使用taglib指令导入标签库 4.core标签库常用标签 (1)out和set (2)remove (3)url (4)if ( ...
- jsp tag 自定义标签实现按钮的显示
前些天在一个项目中做了一个最基本的权限管理(标准的权限结构,用户-角色-菜单),后来需要精确地控制到按钮就想到了使用自定义标签(jsp tag)来处理按钮的显示与隐藏. 下面是我参考网上的资料自己写的 ...
- thinkphp自定义标签库
thinkphp ~ php中 的类, 的成员变量, 本身是没有类型说明的, 那么我怎么知道它的类型呢? 或初始值呢? 通常在类定义中, 如果能给一个初始值的(对于已知简单类型的),最好给一个初始值, ...
最新文章
- 20-flutter下拉刷新与上拉加载
- RHEL 6.5 安装 was 8.5
- Go语言学习之3 流程控制、函数
- 微信jssdk遇到的一些问题汇总
- Linux C语言 文件操作
- 2018 CVPR GAN 相关论文
- 八段LED数码管段代码编码表
- linux ns机制,Linux内核API ns_to_timespec
- uva 12086 树状数组
- axios拦截器_Axios源码解析 —— 一个小而美的HttpClient
- STLINK 烧写器引脚定义
- Google插件switchysharp的用法
- [蓝桥杯] 青出于蓝胜于蓝
- HDU4622- Reincarnation(后缀自动机)
- uni-app 输入框类型
- linux mysql dengl_linux环境搭建(四)--MYSQL
- 【数据结构-树】哈夫曼树及其应用
- Pdp11 simh 虚拟机 运行 unix V6
- 用SQL语句更改数据库名
- V831——条形码识别