可以使用JSP自定义标签来实现简单的代码模板.
自定义标签可以通过传统的继承TagSupport或SimpleTagSupport并实现相关方法,然后声明使用tag描述符进行声明.
这里要说的是一种更加简单的方式,TagFiles.
Tag File其实就是一个JSP页面,只是把扩展名由.jsp变成了.tag,并放置在指定的目录下.
TagFile中不能使用page指令,作为替代可以使用tag指令,在tag指令中声明pageEncoding来指定文件编码,这尤为重要.
attribute指令用来指定调用tag可以使用的参数.
例如<v:table model="${model}"> 这里的model就是在TagFile中通过attribute指令进行指定的.
具体的attribute指令如下
<%@attribute name="pageInfo" type="com.rmc.web.utils.Pages" rtexprvalue="true" required="true" %>
这里声明了一个pageInfo属性,并指定了参数的具体类型.rtexprivalue="ture"表明该属性接受EL表达式,false表示不接受. required="true"表示该属性为必须的,默认值是false.一个简单的TagFile如下
<%@tag body-content="empty" pageEncoding="gbk" %> <%@attribute name="pageInfo" type="com.rmc.web.utils.Pages" rtexprvalue="true" required="true" %> <script type="text/javascript"> function toPage(pageNo) { document.getElementById("page_no").value = pageNo; document.getElementById("form_submit").click(); } </script> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td> 共${pageInfo.allRecords}条 <a href="#" onclick="toPage(1)">首页</a> <a href="#" onclick="toPage(${pageInfo.cpage}-1)">上一页</a> <a href="#" onclick="toPage(${pageInfo.cpage}+1)">下一页</a> <a href="#" onclick="toPage(${pageInfo.allPages}+0)">末页</a> ${pageInfo.cpage}/${pageInfo.allPages}页 转到:第 <input id="page_no" name="page" type="text" style="width: 26px;"/> 页 每页 <input name="pageSize" type="text" value="${pageInfo.pageSize}" style="width: 26px;"/> 条 <input id="form_submit" type="submit" value="GO"/> </td> </tr> </table>