strruts标签使用简介

来源:互联网 发布:申请域名和空间 编辑:程序博客网 时间:2024/06/06 03:42

web.xml配置如下:

Xml代码
  1. <filter>  
  2.         <filter-name>struts2</filter-name>  
  3.         <filter-class>  
  4.             org.apache.struts2.dispatcher.FilterDispatcher  
  5.         </filter-class>  
  6.     </filter>  
  7.     <filter-mapping>  
  8.         <filter-name>struts2</filter-name>  
  9.         <url-pattern>/*</url-pattern>  
  10.     </filter-mapping>  

 

struts.xml配置如下:

Xml代码
  1. <package name="tags" extends="struts-default">  
  2.         <action name="tags" class="com.mengya.action.TagsAction">  
  3.             <result name="success">/tags.jsp</result>  
  4.         </action>  
  5.     </package>  

 TagsAction如下:

Java代码
  1. public class TagsAction extends ActionSupport {  
  2.     private String username;  
  3.   
  4.     private String password;  
  5.       
  6.     @Override  
  7.     public String execute() throws Exception {  
  8.         this.addFieldError("actionError""error!!");  
  9.         return SUCCESS;  
  10.     }  
  11.       
  12.     public String getPassword() {  
  13.         return password;  
  14.     }  
  15.   
  16.     public void setPassword(String password) {  
  17.         this.password = password;  
  18.     }  
  19.   
  20.     public String getUsername() {  
  21.         return username;  
  22.     }  
  23.   
  24.     public void setUsername(String username) {  
  25.         this.username = username;  
  26.     }  
  27.   
  28. }  

 Dog Bean如下:

Java代码
  1. public class Dog {  
  2.     private String dogName;  
  3.   
  4.     public String getDogName() {  
  5.         return dogName;  
  6.     }  
  7.   
  8.     public void setDogName(String dogName) {  
  9.         this.dogName = dogName;  
  10.     }  
  11.   
  12.     @Override  
  13.     public String toString() {  
  14.         return "Dog:DogName=" + dogName;  
  15.     }  
  16.   
  17. }  

 页面struts标签使用如下:

Html代码
  1. <a href="tags.action?username=u&password=p&age=9">Struts2Tags</a>  
  2.   
  3.   
  4. <body>  
  5.         <ol>  
  6.             <li>  
  7.                 property:  
  8.                 <s:property value="username" />  
  9.             </li>  
  10.             <li>  
  11.                 property 取值为字符串:  
  12.                 <s:property value="'username'" />  
  13.             </li>  
  14.             <li>  
  15.                 property 设定为默认值:  
  16.                 <s:property value="admin" default="管理员" />  
  17.             </li>  
  18.             <li>  
  19.                 property 设定为HTML:  
  20.                 <s:property value="'<hr/>'" escape="false" />  
  21.             </li>  
  22.             <hr />  
  23.             <li>  
  24.                 set 设定mengya的值(默认为Request和ActionContext):  
  25.                 <s:set var="mengya" value="username"></s:set>  
  26.             </li>  
  27.             <li>  
  28.                 set 从request中取值:  
  29.                 <s:property value="#request.mengya" />  
  30.             </li>  
  31.             <li>  
  32.                 set 从ActionContext中取值:  
  33.                 <s:property value="#mengya" />  
  34.             </li>  
  35.             <li>  
  36.                 set 设定范围:  
  37.                 <s:set var="adminPassword" value="password" scope="session" />  
  38.             </li>  
  39.             <li>  
  40.                 set 从相应的范围取值:  
  41.                 <%=session.getAttribute("adminPassword")%>  
  42.             </li>  
  43.             <li>  
  44.                 set 从相应的范围取值:  
  45.                 <s:property value="#session.adminPassword" />  
  46.             </li>  
  47.             <hr>  
  48.             <li>  
  49.                 bean 定义bean,并使用bean的param来设定的新属性值  
  50.                 <s:bean name="com.mengya.bean.Dog"></s:bean>  
  51.                 <%-- 没有指定var则在</s:bean>之前会构造一个对象放在椎顶在</s:bean>结束之前则放到了actionContext中 --%>  
  52.             </li>  
  53.             <li>  
  54.                 bean 定义bean,并使用bean的param来设定的新属性值  
  55.                 <s:bean name="com.mengya.bean.Dog" var="myDog">  
  56.                     <s:param name="dogName" value="'myDog'"></s:param>  
  57.                 </s:bean>  
  58.                 取出值:  
  59.                 <s:property value="#myDog" />  
  60.             </li>  
  61.             <hr>  
  62.             <li>  
  63.                 include 包含静态英文html  
  64.                 <s:include value="/include1.html"></s:include>  
  65.             </li>  
  66.             <li>  
  67.                 include 包含静态中文html  
  68.                 <s:include value="/include2.html"></s:include>  
  69.             </li>  
  70.             <li>  
  71.                 <font color="red">%的用法:%是将%{}中的内空强转成ognl表达示而不是普通字符串</font>  
  72.                 <s:set var="incPage" value="'/include1.html'"></s:set>  
  73.                 <br>  
  74.                 <s:include value="incPage"></s:include>  
  75.                 <br>  
  76.                 <s:include value="%{incPage}"></s:include>  
  77.                 <%-- 将incPage作为ognl表达式 --%>  
  78.             </li>  
  79.             <li>  
  80.                 fielderror:  
  81.                 <s:fielderror key="actionError" theme="simple"></s:fielderror>  
  82.             </li>  
  83.             <hr>  
  84.             <li>  
  85.                 if elseif else: age =  
  86.                 <s:property value="#parameters.age[0]" />  
  87.                 <s:if test="#parameters.age[0]<0">  
  88.                     age error!  
  89.                 </s:if>  
  90.                 <s:elseif test="#parameters.age[0]<20">  
  91.                     to young!  
  92.                 </s:elseif>  
  93.                 <s:else>  
  94.                     OK!  
  95.                 </s:else>  
  96.                 &nbsp;&nbsp;|&nbsp;&nbsp;  
  97.                 <s:set var="age" value="#parameters.age[0]"></s:set>  
  98.                 <s:if test="age<0">  
  99.                     age error!  
  100.                 </s:if>  
  101.                 <s:elseif test="age<20">  
  102.                     to young!  
  103.                 </s:elseif>  
  104.                 <s:else>  
  105.                     ok!  
  106.                 </s:else>  
  107.                 &nbsp;&nbsp;|&nbsp;&nbsp;  
  108.                 <s:if test="#parameters.aaa==null">null</s:if>  
  109.             </li>  
  110.             <li>  
  111.                 遍历集合:  
  112.                 <br>  
  113.                 <s:iterator value="{'aa','bb','cc'}">  
  114.                     <s:property />&nbsp;|&nbsp;  
  115.                 </s:iterator>  
  116.             </li>  
  117.             <li>  
  118.                 自定义变量:  
  119.                 <br>  
  120.                 <s:iterator value="{'aa','bb','cc'}" var="temp">  
  121.                     <s:property value="#temp" />&nbsp;|&nbsp;<s:property  
  122.                         value="#temp.toUpperCase()" />  
  123.                 </s:iterator>  
  124.             </li>  
  125.             <li>  
  126.                 使用status:  
  127.                 <br>  
  128.                 <s:iterator value="{11,22,33}" status="status">  
  129.                     <s:property />&nbsp;|遍历过的总元素:<s:property value="#status.count" />&nbsp;|当前元素索引:<s:property  
  130.                         value="#status.index" />&nbsp;|当前值是否为偶数:<s:property  
  131.                         value="#status.even" />&nbsp;|当前值是否为奇数:<s:property  
  132.                         value="#status.odd" />&nbsp;|当前值是否为第一个:<s:property  
  133.                         value="#status.first" />&nbsp;|当前值是否为最后一个:<s:property  
  134.                         value="#status.last" />  
  135.                     <br />  
  136.                 </s:iterator>  
  137.             </li>  
  138.             <s:debug></s:debug>  
  139.         </ol>  
  140.         总结:  
  141.           
  142.         $用于i18n和struts配置文件  
  143.         #用于得到ActionContext的值  
  144.         %将原本的文本属性解析为OGNL表达式,对于本来就是OGNL的属性不起做用  
  145.           
  146.     </body>