Struts2 标签的使用
2016-05-28 17:17
471 查看
<?xml version="1.0" encoding="GB18030" ?> <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030" /> <title>Struts-Tags学习</title> </head> <body> <ol> <li>property: <s:property value="username" /></li> <!-- value中的字符串,struts会默认将其解析为OGNL表达式,下列中,我们给username加上单引号后 返回值就是username,而上例中返回的则是username的取值u --> <li>property 取值为字符串: <s:property value="'username'" /></li> <li>property 设定默认值: <s:property value="admin" default="管理员" /></li> <!-- escape的默认值为true,也就是转意的意思 --> <li>property 设定HTML: <s:property value="'<hr/>'" escape="false" /> </li> <hr /> <!-- set中value的类型是Object,也就是说value="username"里面的username是OGNL表达式,value的值是u; --> <li>set 设定adminName值(默认为request 和 ActionContext): <s:set var="adminName" value="username" /> </li> <li>set 从request取值: <s:property value="#request.adminName" /> </li> <li>set 从ActionContext取值: <s:property value="#adminName" /> </li> <li>set 设定范围: <s:set name="adminPassword" value="password" scope="page" /> </li> <li>set 从相应范围取值: <%=pageContext.getAttribute("adminPassword")%></li> <!-- 也可以使用EL表达式来获取值 --> <li>set 从相应范围取值: ${pageScope.adminPassword}</li> <li>set 设定var,范围为ActionContext: <s:set var="adminPassword" value="password" scope="session" /> </li> <!-- 下例中取不到值!! --> <li>set 使用#取值: <s:property value="#adminPassword" /></li> <li>set 从相应范围取值: <s:property value="#session.adminPassword" /></li> <%-- <s:debug></s:debug> --%> <hr /> <%--<li>push:<s:set name="myDog" value="new com.bjsxt.struts2.ognl.Dog('oudy')"></s:set></li> <li> push:<s:push value="#myDog"> <s:property value="name"/> </s:push> </li> <li>push: <s:property value="name"/></li> --%> <!-- jsp的bean动作标签和Struts2bean标签的对比!! --> <jsp:useBean id="dog" class="com.bjsxt.struts2.tags.Dog" /> 4000 <jsp:setProperty name="dog" property="name" value="pp" /> <jsp:getProperty name="dog" property="name" /> <hr /> <li>bean 定义bean,并使用param来设定新的属性值: <s:bean name="com.bjsxt.struts2.tags.Dog"> <s:param name="name" value="'pp'"></s:param> <s:property value="name" /> <%-- <s:debug></s:debug> --%> <!-- 在此处使用debug会看到值栈的栈顶会有dog对象 --> </s:bean> <s:debug></s:debug> <!-- 此处使用debug就看不到dog对象了,如果还想看到其对象,必须设置var将其压入stack context中 --> </li> <!-- 如果想在Stack Context中看到bean的内容,必须设置var=""; --> <li>bean 查看debug情况: <s:bean name="com.bjsxt.struts2.tags.Dog" var="myDog"> <!-- 注意value的值类型是Object,所以要加上单引号将其转化为字符串形式 --> <s:param name="name" value="'oudy'"></s:param> </s:bean> 拿出值: <s:property value="#myDog.name" /></li> <hr /> <%-- <li>include _include1.html 包含静态英文文件 <s:include value="/_include1.html"></s:include> </li> <li>include _include2.html 包含静态中文文件 <s:include value="/_include2.html"></s:include> </li> --%> <li>include _include1.html 包含静态英文文件,说明%用法 <s:set var="incPage" value="%{'/_include1.html'}" /> <!-- s:include中的value值为字符串类型,所以要取值的话,需要使用百分号将其强制转为OGNL表达式!! --> <!-- 而s:property中的value值为Object类型的,其默认为OGNL表达式!! --> <s:include value="%{#incPage}"></s:include> <!-- 使用百分号表示强制将其解析为OGNL表达式!! --></li> <hr /> <li>if elseif else: age = <s:property value="#parameters.age[0]" /> <br /> <s:set var="age" value="#parameters.age[0]" /> <s:if test="#age < 0"> wrong age!</s:if> <s:elseif test="#age < 20">too young!</s:elseif> <s:else>yeah!</s:else><br /> <s:if test="#parameters.aaa == null">null</s:if> </li> <!-- 在JSTL标签库中用choose when 来代替if else if --> <%-- <!-- choose标签!! if elseif --> <c:set var="score" value="${param.score }" /> <c:choose> <c:when test="${score>100||score<0}">错误的分数:${score}</c:when> <c:when test="${score>=90 }">A</c:when> <c:when test="${score>=80 }">B</c:when> <c:when test="${score>=70 }">C</c:when> <c:when test="${score>=60 }">D</c:when> <c:otherwise>E</c:otherwise> </c:choose> --%> <hr /> <li>遍历集合:<br /> <s:iterator value="{1, 2, 3}"> <s:property /> | <!-- 会自动将其列出!! --> </s:iterator></li> <li>自定义变量:<br /> <s:iterator value="{'aaa', 'bbb', 'ccc'}" var="x"> <s:property value="#x.toUpperCase()" /> | </s:iterator></li> <!-- 使用JSTL和EL的foreach完成迭代!! --> <%-- foreach遍历数组!! <% String[] string = {"xuxiang","edward"}; request.setAttribute("name", string); %> <c:forEach items="${name}" var="temp" varStatus="vs"> <!-- 循环状态变量varStatus --> ${vs.first} ${temp} </c:forEach> --%> <li>使用status:<br /> <s:iterator value="{'aaa', 'bbb', 'ccc'}" status="status"> <s:property /> | 遍历过的元素总数:<s:property value="#status.count" /> | 遍历过的元素索引:<s:property value="#status.index" /> | 当前是偶数?:<s:property value="#status.even" /> | 当前是奇数?:<s:property value="#status.odd" /> | 是第一个元素吗?:<s:property value="#status.first" /> | 是最后一个元素吗?:<s:property value="#status.last" /> <br /> </s:iterator></li> <!-- 定义map时必须加上一个# --> <li><s:iterator value="#{1:'a', 2:'b', 3:'c'}"> <s:property value="key" /> | <s:property value="value" /> <br /> </s:iterator></li> <li><s:iterator value="#{1:'a', 2:'b', 3:'c'}" var="x"> <s:property value="#x.key" /> | <s:property value="#x.value" /> <br /> </s:iterator></li> <li><s:fielderror fieldName="fielderror.test" theme="simple"></s:fielderror> </li> </ol> </body> </html>
相关文章推荐
- 【java】显示刽子手游戏画面
- java泛型基本理解和运用
- 【java】显示sin曲线
- spring集成dubbo学习总结
- Caused by: java.sql.SQLException: An attempt by a client to checkout a Connection has timed out
- 深入理解Java:SimpleDateFormat安全的时间格式化(多线程应用)
- Java 反射
- 解决Eclipse导出javadoc乱码问题
- 【转载】springMVC表单校验+全注解
- java.util.ConcurrentModificationException异常处理
- 【Win10+eclipse+MinGW+QT安装教程】已有eclipse环境下配置QT插件出错详解
- rxJava的使用--Observable的创建及源码分析(三)
- extends:类似于java中的继承特征,extends="struts-default"
- eclipse 中创建maven web项目
- java List 排序 Collections.sort()
- java.lang.ClassNotFoundException: javax.persistence.EntityListeners
- JAVA三大框架SSH的各自作用
- JavaMail直接发送邮件
- struts2关于package 的 namespace
- 浅谈Java设计模式之代理模式