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:使用自定义标签库生成动态内容相关推荐

  1. EE JSP:使用自定义标签库生成动态内容

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

  2. jsp导入jstl标签库_EE JSP:使用JSTL标记库生成动态内容

    jsp导入jstl标签库 除了在JSP中编写自己的定制标记之外,您还将发现Java EE实际上提供了一组Java标准标记库(JSTL)供您使用. 这些内置标签包括重复(for-loop)标签,条件标签 ...

  3. java ee jsp_EE JSP:Servlet的反向外套

    java ee jsp 仅当页面数量少或需要对生成的内容(二进制PDF等)进行精细控制时,才可以从Servlet生成HTML. 对于大多数应用程序,输出将是HTML,我们需要一种更好的方法来完成此操作 ...

  4. EE JSP:使用JSTL标记库生成动态内容

    除了在JSP中编写自己的定制标记之外,您还将发现Java EE实际上提供了一组Java标准标记库(JSTL)供您使用. 这些内置标签包括重复(for-loop)标签,条件标签,变量声明和输出标签等.库 ...

  5. java自定义标签库的开发

    java自定义标签库的开发 第14章 自定义标签库的开发 14.1 自定义标签介绍 14.2 HelloWorld标签的开发 14.3 开发带Body的标签库 14.4 多个标签的嵌套 14.5 开发 ...

  6. Java EE之JSP

    1.使用JSP的原因 编写Servlet代码的时候,向响应中输出HTML文档是非常不方便的. PrintWriter writer = response.getWriter(); writer.app ...

  7. Java-Web JSTL标签库、自定义标签库和MVC设计模式

    目录 一.JSTL标签库 1.什么是JSTL 2.JSTL标签库 3.使用taglib指令导入标签库 4.core标签库常用标签 (1)out和set (2)remove (3)url (4)if ( ...

  8. jsp tag 自定义标签实现按钮的显示

    前些天在一个项目中做了一个最基本的权限管理(标准的权限结构,用户-角色-菜单),后来需要精确地控制到按钮就想到了使用自定义标签(jsp tag)来处理按钮的显示与隐藏. 下面是我参考网上的资料自己写的 ...

  9. thinkphp自定义标签库

    thinkphp ~ php中 的类, 的成员变量, 本身是没有类型说明的, 那么我怎么知道它的类型呢? 或初始值呢? 通常在类定义中, 如果能给一个初始值的(对于已知简单类型的),最好给一个初始值, ...

最新文章

  1. 20-flutter下拉刷新与上拉加载
  2. RHEL 6.5 安装 was 8.5
  3. Go语言学习之3 流程控制、函数
  4. 微信jssdk遇到的一些问题汇总
  5. Linux C语言 文件操作
  6. 2018 CVPR GAN 相关论文
  7. 八段LED数码管段代码编码表
  8. linux ns机制,Linux内核API ns_to_timespec
  9. uva 12086 树状数组
  10. axios拦截器_Axios源码解析 —— 一个小而美的HttpClient
  11. STLINK 烧写器引脚定义
  12. Google插件switchysharp的用法
  13. [蓝桥杯] 青出于蓝胜于蓝
  14. HDU4622- Reincarnation(后缀自动机)
  15. uni-app 输入框类型
  16. linux mysql dengl_linux环境搭建(四)--MYSQL
  17. 【数据结构-树】哈夫曼树及其应用
  18. Pdp11 simh 虚拟机 运行 unix V6
  19. 用SQL语句更改数据库名
  20. V831——条形码识别

热门文章

  1. nssl1269-射击【贪心,堆】
  2. 洛谷P1462-通往奥格玛瑞的路【日常图论,二分查找,最短路,SPAF】
  3. HDU4035 Maze(树上期望)
  4. AtCoder Regular Contest 105 部分 NIM游戏
  5. Arthas - 开源 Java 诊断工具
  6. 又发生频繁FGC,这次是谁的锅
  7. 为什么我强烈建议大家使用枚举来实现单例
  8. java提高篇之抽象类与接口
  9. 《朝花夕拾》金句摘抄(三)
  10. 使用C#操作XML文件