首页 > Java开发 > Struts2中Action接收传递的参数

Struts2中Action接收传递的参数

Struts2中Action接收传递的参数有 三种方式:

1.用Action的属性接收参数:

struts.xml

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"  
  4.     "http://struts.apache.org/dtds/struts-2.3.dtd">  
  5.   
  6. <struts>  
  7.     <constant name="struts.enable.DynamicMethodInvocation" value="true" />  
  8.     <constant name="struts.devMode" value="true" />  
  9.     <package name="font" namespace="/user" extends="struts-default">  
  10.                 
  11.        <action name="user" class="com.zhang.HelloAction">  
  12.            <result >  
  13.              /Studentadd_success.jsp  
  14.            </result>  
  15.         </action>  
  16.           
  17.     </package>  
  18. </struts>  

 

HelloAction.java

[java] view plaincopy在CODE上查看代码片派生到我的代码片

  1. package com.zhang;  
  2.   
  3. import com.opensymphony.xwork2.ActionSupport;  
  4.   
  5. public class HelloAction extends ActionSupport  
  6. {  
  7.     private String name;  
  8.     private int age;  
  9.       
  10.     public String add()  
  11.     {  
  12.         System.out.println("name="+name);  
  13.         System.out.println("age="+age);  
  14.         return SUCCESS;  
  15.     }  
  16.   
  17.     public String getName()  
  18.     {  
  19.         return name;  
  20.     }  
  21.   
  22.     public void setName(String name)  
  23.     {  
  24.         this.name = name;  
  25.     }  
  26.   
  27.     public int getAge()  
  28.     {  
  29.         return age;  
  30.     }  
  31.   
  32.     public void setAge(int age)  
  33.     {  
  34.         this.age = age;  
  35.     }  
  36.       
  37. }  

步骤:

     .定义:在Action类中定义属性,创建get和set方法;
访问:使用属性名传递参数,如:http://localhost:8080/Struts2_03/user/user!add?name=aa&age=10

2.用DomainModel接收参数:

HelloAction.java

[java] view plaincopy在CODE上查看代码片派生到我的代码片

  1. package com.zhang;  
  2.   
  3. import com.opensymphony.xwork2.ActionSupport;  
  4.   
  5. public class HelloAction extends ActionSupport  
  6. {  
  7.     private User user;  
  8.       
  9.     public String add()  
  10.     {  
  11.         System.out.println("name="+user.getName());  
  12.         System.out.println("age="+user.getAge());  
  13.         return SUCCESS;  
  14.     }  
  15.       
  16.     public User getUser()  
  17.     {  
  18.         return user;  
  19.     }  
  20.       
  21.     public void setUser(User user)  
  22.     {  
  23.         this.user = user;  
  24.     }  
  25. }  


User.java

[java] view plaincopy在CODE上查看代码片派生到我的代码片

  1. package com.zhang;  
  2.   
  3. public class User  
  4. {  
  5.     private String name;  
  6.     private int age;  
  7.   
  8.     public String getName()  
  9.     {  
  10.         return name;  
  11.     }  
  12.   
  13.     public void setName(String name)  
  14.     {  
  15.         this.name = name;  
  16.     }  
  17.   
  18.     public int getAge()  
  19.     {  
  20.         return age;  
  21.     }  
  22.   
  23.     public void setAge(int age)  
  24.     {  
  25.         this.age = age;  
  26.     }  
  27. }  

步骤:

       定义:定义Model类,在Action中定义Model类的对象(不需要new),创建该对象的get和set方法;
接收:通过对象的属性接收参数,如:user.getName();
访问:使用对象的属性传递参数,如:http://localhost:8080/Struts2_04/user/user!add?user.name=a&user.age=10

3.用ModelDriven接收参数

HelloAction.java

[java] view plaincopy在CODE上查看代码片派生到我的代码片

  1. package com.zhang;  
  2.   
  3. import com.opensymphony.xwork2.ActionSupport;  
  4. import com.opensymphony.xwork2.ModelDriven;  
  5.   
  6. public class HelloAction extends ActionSupport implements ModelDriven<User>  
  7. {  
  8.     private User user = new User();  
  9.       
  10.     public String add()  
  11.     {  
  12.         System.out.println("name="+user.getName());  
  13.         System.out.println("age="+user.getAge());  
  14.         return SUCCESS;  
  15.     }  
  16.       
  17.     public User getModel()  
  18.     {  
  19.         return user;  
  20.     }  
  21. }  


User.java

[java] view plaincopy在CODE上查看代码片派生到我的代码片

  1. package com.zhang;  
  2.   
  3. public class User  
  4. {  
  5.     private String name;  
  6.     private int age;  
  7.   
  8.     public String getName()  
  9.     {  
  10.         return name;  
  11.     }  
  12.   
  13.     public void setName(String name)  
  14.     {  
  15.         this.name = name;  
  16.     }  
  17.   
  18.     public int getAge()  
  19.     {  
  20.         return age;  
  21.     }  
  22.   
  23.     public void setAge(int age)  
  24.     {  
  25.         this.age = age;  
  26.     }  
  27. }  

步骤

        定义:Action实现ModelDriven泛型接口,定义Model类的对象(必须new),通过getModel方法返回该对象;
访问:直接使用属性名传递参数,如:http://localhost:8080/Struts2_04/user/user!add?name=a&age=10


本文固定链接: http://www.devba.com/index.php/archives/5224.html | 开发吧

报歉!评论已关闭.