当我们需要使用更多的动作,让我们的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调用函数


野原英雄
206 声望25 粉丝

一只小猿


引用和评论

0 条评论