自定义JSTL标签

开发步骤:

使用步骤:

步骤:

方法的返回值有两个:

Tag.SKIP_BODY:忽略标签之间的内容

Tag.EVAL_BODY_INCLUDE:执行标签之间的内容

package test.taglib;import java.net.URLDecoder;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.TagSupport;public class MsgTag extends TagSupport {private static final long serialVersionUID = -4253039194552308039L;private String errMsgKey = "errMsg";private String infoMsgKey = "infoMsg";/*** 获取errMsgKey的值** @return errMsgKey*/public String getErrMsgKey() {return errMsgKey;}/*** 设置 errMsgKey的值** @param errMsgKey errMsgKey*/public void setErrMsgKey(String errMsgKey) {this.errMsgKey = errMsgKey;}/*** 获取infoMsgKey的值** @return infoMsgKey*/public String getInfoMsgKey() {return infoMsgKey;}/*** 设置 infoMsgKey的值** @param infoMsgKey infoMsgKey*/public void setInfoMsgKey(String infoMsgKey) {this.infoMsgKey = infoMsgKey;}@Overridepublic int doStartTag() throws JspException {try {// 获取错误信息String errMsg = (String) pageContext.getRequest().getAttribute(errMsgKey);if (errMsg != null && !"".equals(errMsg)) {// 显示错误信息pageContext.getOut().write("<font color='red'>" + errMsg + "</font>");return SKIP_BODY;}// 获取提示信息String infoMsg = (String) pageContext.getRequest().getAttribute(infoMsgKey);if (infoMsg == null || "".equals(infoMsg)) {infoMsg = pageContext.getRequest().getParameter(infoMsgKey);if (infoMsg != null && !"".equals(infoMsg)) {// URL解码infoMsg = URLDecoder.decode(infoMsg, "UTF-8");// 使用get方式提交的数据不能通过request.setCharacterEncoding方法进行编码转换infoMsg = new String(infoMsg.getBytes("ISO-8859-1"),"UTF-8");}}if (infoMsg != null && !"".equals(infoMsg)) {// 显示提示信息pageContext.getOut().write("<font color='blue'>" + infoMsg + "</font>");return SKIP_BODY;}} catch (Exception e) {throw new JspException(e);}return SKIP_BODY;}}

<?xml version="1.0" encoding="UTF-8" ?><taglib xmlns=""xmlns:xsi=""xsi:schemaLocation=""version="2.0"><tlib-version>0.1</tlib-version>//版本号<short-name>ex</short-name><uri></uri>//访问标识符<tag><name>msg</name>//标签名<tag-class>test.taglib.MsgTag</tag-class>//标签处理类<body-content>empty</body-content>//empty:标签主体为空jsp:包含JSP代码<attribute><name>errMsgKey</name>//属性名<required>false</required>//属性是否必须<rtexprvalue>false</rtexprvalue>//属性值是否可以使用EL表达式或JSP表达式</attribute><attribute><name>infoMsgKey</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute></tag></taglib><span style="font-family: SimSun; font-size: 12pt;">4、配置JSTL</span><span lang="zh-CN" style="color: rgb(58, 56, 56); font-family: SimSun; font-size: 12pt;">在</span><span lang="en-US" style="color: rgb(58, 56, 56); font-family: SimSun; font-size: 12pt;">web.xml</span><span lang="zh-CN" style="color: rgb(58, 56, 56); font-family: SimSun; font-size: 12pt;">文件中添加</span><span style="color: rgb(58, 56, 56); font-family: SimSun; font-size: 12pt;"></span><pre name="code" class="html"> <jsp-config><taglib><taglib-uri>test.ex.tld</taglib-uri>//定义使用该标签的uri,可以自定义<taglib-location>/WEB-INF/tlds/ex.tld</taglib-location>//文件地址</taglib></jsp-config<span style="color: rgb(0, 176, 80); font-family: SimSun; font-size: 12pt;">5、使用</span>

JSP页面:

<ex:msg errMsgKey="err">

,代替你主持夕阳的葬礼。

自定义JSTL标签

相关文章:

你感兴趣的文章:

标签云: