struts2的静态参数封装及3种动态参数封装方法

时间:2022-08-27 22:07:15

1.静态参数封装

用到了相应的拦截器,在struts-default.xml中查找<interceptor-ref name="staticParams"/>

对应的jsp

[html]  view plain  copy
  1. <body>  
  2.    <form action="${pageContext.request.contextPath}/action1.action" method="post">  
  3.     <%--表单中的name属性取值必须和动作类中数据模型的set方法后面的名称一致。 --%>  
  4.     用户名:<input type="text" name="username" /><br/>  
  5.     年龄:<input type="text" name="age"/><br/>  
  6.     <input type="submit" value="提交" />  
  7.    </form>  

对应的struts配置

[html]  view plain  copy
  1. <action name="action1" class="com.itheima.web.action.Demo1Action" method="addUser">  
  2.     <!-- 当我们不写任何拦截器时,默认的拦截器栈defaultStack它来为我们工作。  
  3.          但是,只要写了任何一个拦截器,默认的就全都不起作用了 -->  
  4.     <!-- 使用注入的方式,给动作类的中的参数赋值 -->  
  5.     <param name="username">张三</param>  
  6.     <param name="age">18</param>  
  7. </action>  


对应的动作类

[java]  view plain  copy
  1. import com.opensymphony.xwork2.ActionSupport;  
  2. /** 
  3.  * 静态参数封装 
  4.  * @author zhy 
  5.  * 
  6.  */  
  7. public class Demo1Action extends ActionSupport {  
  8.   
  9.     private String username;  
  10.     private int age;  
  11.       
  12.       
  13.     public String addUser(){  
  14.         System.out.println(username+","+age);  
  15.         return null;//不返回任何结果视图   NONE常量  
  16.     }  
  17.   
  18.   
  19.     public String getUsername() {  
  20.         return username;  
  21.     }  
  22.   
  23.   
  24.     public void setUsername(String username) {  
  25.         this.username = username;  
  26.     }  
  27.   
  28.   
  29.     public int getAge() {  
  30.         return age;  
  31.     }  
  32.   
  33.   
  34.     public void setAge(int age) {  
  35.         this.age = age;  
  36.     }  
  37.       
  38.       
  39. }  


2.动态参数封装

1)用到了相应的拦截器,在struts-default.xml中查找<interceptor-ref name="params">

对应的jsp,与静态的一致

[html]  view plain  copy
  1. <body>  
  2.     <form action="${pageContext.request.contextPath}/action2.action" method="post">  
  3.         <%--表单中的name属性取值必须和动作类中数据模型的set方法后面的名称一致。 --%>  
  4.         用户名:<input type="text" name="username" /><br/>  
  5.         年龄:<input type="text" name="age"/><br/>  
  6.         <input type="submit" value="提交" />  
  7.     </form>  
  8.   </body>  

对应的struts配置

[html]  view plain  copy
  1. <!-- 动态参数封装的第一种形式的配置 -->  
  2.         <action name="action2" class="com.itheima.web.action.Demo2Action" method="addUser"></action>  

对应的动作类

[java]  view plain  copy
  1. import com.opensymphony.xwork2.ActionSupport;  
  2. /** 
  3.  * 动态参数封装,第一种情况: 
  4.  *      数据模型与动作类写在一起 
  5.  * @author zhy 
  6.  * 
  7.  */  
  8. public class Demo2Action extends ActionSupport {  
  9.   
  10.     private String username;  
  11.     private int age;  
  12.       
  13.       
  14.     public String addUser(){  
  15.         System.out.println(username+","+age);  
  16.         return null;//不返回任何结果视图   NONE常量  
  17.     }  
  18.   
  19.   
  20.     public String getUsername() {  
  21.         return username;  
  22.     }  
  23.   
  24.   
  25.     public void setUsername(String username) {  
  26.         this.username = username;  
  27.     }  
  28.   
  29.   
  30.     public int getAge() {  
  31.         return age;  
  32.     }  
  33.   
  34.   
  35.     public void setAge(int age) {  
  36.         this.age = age;  
  37.     }  
  38.       
  39.       
  40. }