使用简单标签模拟标签(c:if c:when c:otherwise c:foreach)
1、 模拟c:if标签
*******************************************************************************************
----------------------------------------------------------------------------------------------------
<%@ taglib uri="http://www.itcast.cn/jsp/tag/example" prefix="eitcast" %>
<body>
<%
pageContext.setAttribute("gender","1");
%>
<eitcast:if test="${gender=='1'}">
男
</eitcast:if>
<eitcast:if test="${gender=='0'}">
女
</eitcast:if>
</body>
----------------------------------------------------------------------------------------------------
public class IfSimpleTag extends SimpleTagSupport {
private boolean test; // 基本类型自动转换
public void setTest(boolean test) {
this.test = test;
}
@Override
public void doTag() throws JspException, IOException {
if(test){
// 获取主体内容
getJspBody().invoke(null);
}
}
}
----------------------------------------------------------------------------------------------------
<tag>
<name>if</name>
<tag-class>cn.itcast.etag.IfSimpleTag</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>test</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
----------------------------------------------------------------------------------------------------
*******************************************************************************************
2、 模拟c:if/else标签(嵌套标签when otherwise)
*******************************************************************************************
----------------------------------------------------------------------------------------------------
<%@ taglib uri="http://www.itcast.cn/jsp/tag/example" prefix="eitcast"%>
<body>
<%
pageContext.setAttribute("grade","A");
%>
<eitcast:choose>
<eitcast:when test="${grade=='A'}">
优秀
</eitcast:when>
<eitcast:otherwise>
一般般
</eitcast:otherwise>
</eitcast:choose>
</body>
1、 模拟c:if标签
*******************************************************************************************
----------------------------------------------------------------------------------------------------
<%@ taglib uri="http://www.itcast.cn/jsp/tag/example" prefix="eitcast" %>
<body>
<%
pageContext.setAttribute("gender","1");
%>
<eitcast:if test="${gender=='1'}">
男
</eitcast:if>
<eitcast:if test="${gender=='0'}">
女
</eitcast:if>
</body>
----------------------------------------------------------------------------------------------------
public class IfSimpleTag extends SimpleTagSupport {
private boolean test; // 基本类型自动转换
public void setTest(boolean test) {
this.test = test;
}
@Override
public void doTag() throws JspException, IOException {
if(test){
// 获取主体内容
getJspBody().invoke(null);
}
}
}
----------------------------------------------------------------------------------------------------
<tag>
<name>if</name>
<tag-class>cn.itcast.etag.IfSimpleTag</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>test</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
----------------------------------------------------------------------------------------------------
*******************************************************************************************
2、 模拟c:if/else标签(嵌套标签when otherwise)
*******************************************************************************************
----------------------------------------------------------------------------------------------------
<%@ taglib uri="http://www.itcast.cn/jsp/tag/example" prefix="eitcast"%>
<body>
<%
pageContext.setAttribute("grade","A");
%>
<eitcast:choose>
<eitcast:when test="${grade=='A'}">
优秀
</eitcast:when>
<eitcast:otherwise>
一般般
</eitcast:otherwise>
</eitcast:choose>
</body>