码迷,mamicode.com
首页 > 其他好文 > 详细

struts2入门之action获取表单提交数据

时间:2017-06-25 10:20:44      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:oid   except   import   override   com   进一步   getc   blog   exe   

action获取表单提交数据,有三种方式:

1、根据ActionContext对象获取;

2、利用ServletActionContext类获取表单数据;(其实就是可以获取HttpServletRequest对象)

3、利用接口注入的方式获取表单数据;实现接口(ServletRequestAware)

其实以上三种方式都是action通过操作域对象来获取数据,和servlet中操作域对象有异曲同工之妙,

  I、通过ActionContext类获取表单提交数据,代码如下:    

 1 public class DogAction2 extends ActionSupport {
 2     @Override
 3     public String execute() throws Exception {
 4         ActionContext context = ActionContext.getContext();
 5         Map<String, Object> map = context.getParameters();
 6         Set<String> set = map.keySet();
 7         for (String key : set) {
 8             Object[] objects = (Object[]) map.get(key);//这里我之所以要转化成object数组的形式,是因为表单提交数据也有可能是复选框的情况,这里要考虑周全
 9             System.out.println(Arrays.toString(objects));
10         }
11         return "success";
12     }
13 }

   II、利用ServletActionContext类,代码如下: 

 1 import org.apache.struts2.ServletActionContext;
 2 
 3 import com.opensymphony.xwork2.ActionSupport;
 4 
 5 public class Dog3Action extends ActionSupport {
 6     private static final long serialVersionUID = 1L;
 7 
 8     @Override
 9     public String execute() throws Exception {
10         HttpServletRequest request = ServletActionContext.getRequest();
11         String username = request.getParameter("username");
12         String password = request.getParameter("password");
13         System.out.println(username + "---" + password);
14         return NONE;
15     }
16 }

   III、利用接口(ServletActionAware)注入方式获取表单数据,代码如下:(利用要实现的接口中的参数来初始化request对象,进而获取表单数据) 

 1 import javax.servlet.http.HttpServletRequest;
 2 
 3 import org.apache.struts2.interceptor.ServletRequestAware;
 4 
 5 public class Dog4Action implements ServletRequestAware {
 6     private HttpServletRequest request;
 7 
 8     @Override
 9     public void setServletRequest(HttpServletRequest request) {
10         this.request = request;
11     }
12 
13     public String execute() {
14         String username = request.getParameter("username");
15         String password = request.getParameter("password");
16         System.out.println(username + "---" + password);
17         return "none";
18     }
19 }

 

 总结:上面的后两种方式都是沿袭了servlet的方式,通过域对象来获取表单数据,第一种方式获取的表单数据是一个map集合,进而可以进一步得到具体的数据。

    接下来我会准备struts2的获取表单数据的方式。见下一篇博客。。。

 

struts2入门之action获取表单提交数据

标签:oid   except   import   override   com   进一步   getc   blog   exe   

原文地址:http://www.cnblogs.com/ZT-SummerRain/p/7075472.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!