当我们需要使用更多的动作,让我们的JSP页面“无脚本化”更好,我们该尝试一下JSTL(JSP标准标签库)。例如,我们可以用下面代码遍历一个对象集合:
<c:forEach var="item" items="{items}">
${item}
</c:forEach>
使用下面代码,进行条件判断:
<c:if test="{2 >= 3}">
<%-- do something --%>
</c:if>
常见的标签有:
- 核心库(core-c)
- forEach
- if
- choose-when-otherwise
- set(设置属性值)
- remove(移除属性值)
- import(把URL属性增加到页面)
- param(设置)
- url(保证URL重写)
- catch(捕获异常)
<%@ page errorPage="somePage"%>
<%@ taglib uri="" prefix="c"%>
<c:catch var="someException">
<%-- code --%>
</c:catch>
<c:if test="{someExcpetion != null}">
${someException.message}
</c:if>
当我们需要获取更多的功能是,我们可以自定义我们的标签库,具体步骤如下:
- 编写可以处理业务的Java类
class SomeClass extends SimpleTagSupport{
@Override
public void doTag throws JspException, IOException(){
// 方法体
}
}
- 编写标记库描述
<uri></uri>
<function>
<name></name>
<function-class></function>
<function-signature></function-signature>
</function>
- 使用taglib指令
<%@ taglib prefix="" uri=""%>
- 使用EL调用函数