自定义JSTL标签*
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>PMv2</short-name>
<uri>/PMv2-tags</uri>
<display-name>自定义标签</display-name>
<description>自定义标签</description>
<tag>
<name>auth</name>
<tag-class>com.csot.tag.pageAuthTag</tag-class>
<body-content>jsp</body-content>
<description>页面元素权限控制</description>
<attribute>
<name>flag</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>控制权限过滤的标志</description>
</attribute>
</tag>
</taglib>
获取标签提内容并给元素加上readonly=“true”属性
public class pageAuthTag extends BodyTagSupport {
Boolean flag;
public Boolean getFlag() {
return flag;
}
public void setFlag(Boolean flag) {
this.flag = flag;
}
private static final long serialVersionUID = -8478342997102368372L;
@Override
public int doEndTag() throws JspException{
BodyContent bc = this.getBodyContent();//获取标签体内容对象
String content = bc.getString();
String string = "readonly=\"true\"";
if(flag == false){
StringBuffer sb =new StringBuffer(content);
int index = content.indexOf("value")-1;
content = sb.insert(index, string).toString();
}
try {
this.pageContext.getOut().write(content);//在将转化之后的内容输出到浏览器中
} catch (IOException e) {
throw new RuntimeException(e);
}
return BodyTagSupport.EVAL_BODY_INCLUDE;
}
@Override
public int doStartTag() throws JspException{
return BodyTagSupport.EVAL_BODY_BUFFERED;
}
}
jsp页面,接受后台传来的flag。
<td class="td_left">问题<span
style="color: red;">*</span></td>
<PMv2:auth flag="${flag}">
<td class="td_right"><input style="width:120px" name="issueName" value="${issue.issueName}"/></td>
</PMv2:auth>
<—完!>