JSP入门一、不用JSTL时jsp页面的代码示例
例1. 通过 scriptlet 实现条件内容
(scriptlet:包含一个有效的程序段。任何文本,HTML标记,JSP元素必须在scriptlet之外 )
- <% if (user.getRole() == "member")) { %>
- <p>Welcome, member!< /p>
- <% } else { %>
- <p>Welcome, guest!< /p>
- <% } %>
修正此类问题通常需要相当丰富的编程经验。尽管通常会由十分精通页面布局和图形设计的设计人员来开发和维护 JSP,但是同一页面中的脚本编制元素出现问题时,需要程序员的介入。这种状况将单个文件中代码的责任分担给多人,因而使得开发、调试和增强此类 JSP 页面成为很麻烦的任务。通过将常用功能包装到定制标记库的标准集合中,JSTL 使 JSP 作者可以减少对编制脚本元素的需求,甚至可以不需要它们,并避免了相关的维护成本。
JSP入门二、介绍JSTL 1.0
JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。
core 标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。它还提供了用来生成和操作 URL 的标记。
format 标记库定义了用来格式化数据(尤其是数字和日期)的操作。它还支持使用本地化资源束进行 JSP 页面的国际化。
xml 库包含一些标记,这些标记用来操作通过 XML 表示的数据
sql 库定义了用来查询关系数据库作。
JSP入门三、表达式语言(EL)
EL 表达式的格式是这样的:用美元符号($)定界,内容包括在花括号({})中。
例2. 说明 EL 表达式定界符的 JSTL 操作
- < c:out value="${user.firstName}"/>
例3. 组合静态文本和多个 EL 表达式以指定动态属性值
- < c:out value="Hello ${user.firstName} ${user.lastName}"/>
JSP入门四、Taglib 伪指令
例4. 用于 JSTL core 库 EL 版本的 taglib 伪指令
- < %@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
JSP入门五、变量标记
例5中显示了该操作的语法,其中 var 属性指定了变量的名称,scope 属性表明了该变量驻留在哪个作用域中,value 属性指定了分配给该变量的值。如果指定变量已经存在,则简单地将所指明的值赋给它。如果不存在,则创建新的限制了作用域的变量,并用该值初始化这个变量。
例5. < c:set>操作的语法
- < c:set var="name" scope="scope" value="${user.firstName}"/>