Struts2中提交表单使用request和respone最常用的方式与简单数组、复杂数组还有Map赋值。

一、ServletActionContext()获取request和respone

最常用的方式,其他和Servlet中的用法一样,代码如下:

 

1         HttpServletRequest request = ServletActionContext.getRequest();
2         HttpServletResponse response = ServletActionContext.getResponse();

 

注意:以上方法需要写在Action类中。

二、使用普通数组、复杂数组、Map赋值操作

(1)使用普通数组,Action类和前台的代码分别如下:

 

 1 private String[] list;
 2 
 3 public void setList(String[] list) {
 4      this.list = list;
 5 }
 6 
 7 public String[] getList() {
 8      return list;
 9 }
10 
11 @Override
12     public String execute() throws Exception {
13         ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
14         ServletActionContext.getResponse().getWriter().println(Arrays.asList(list));
15         return NONE;
16     }

 

 

1            <form action="${pageContext.request.contextPath}/userAdd" method="get">
2                <input type="text" name="list" value="张三">
3                <input type="text" name="list" value="李四">
4                <button>添加</button>
5            </form>

结果为[张三, 李四]

(2)使用复杂一点的数组,这次我们给List传入一个封装好的User,代码如下

 1 public class User {
 2     private String userName;
 3     private String userPwd;
 4 
 5     public void setUserName(String userName) {
 6         this.userName = userName;
 7     }
 8 
 9     public void setUserPwd(String userPwd) {
10         this.userPwd = userPwd;
11     }
12 
13     public String getUserName() {
14         return userName;
15     }
16 
17     public String getUserPwd() {
18         return userPwd;
19     }
20     public String toString(){
21         return "[userName:"+getUserName()+",userPwd:"+getUserPwd()+"]";
22     }
23 }

然后在Action类创建一个List,修改一下前台的代码

 1     private List<User> user;
 2 
 3     public List<User> getUser() {
 4         return user;
 5     }
 6 
 7     public void setUser(List<User> user) {
 8         this.user = user;
 9     }
10 
11     @Override
12     public String execute() throws Exception {
13         ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
14         ServletActionContext.getResponse().getWriter().println(Arrays.asList(user));
15         return NONE;
16     }
1            <form action="${pageContext.request.contextPath}/userAdd" method="get">
2                <input type="text" name="user[0].userName" value="张三">
3                <input type="text" name="user[0].userPwd" value="123三">
4                <input type="text" name="user[1].userName" value="李四">
5                <input type="text" name="user[1].userPwd" value="123四">
6                <button>添加</button>
7            </form>

结果为[[[userName:张三,userPwd:123三], [userName:李四,userPwd:123四]]]

(4)使用Map将User添加进去,并添加键值,代码如下

 

 1     private Map<String,User> map;
 2 
 3     public Map<String, User> getMap() {
 4         return map;
 5     }
 6 
 7     public void setMap(Map<String, User> map) {
 8         this.map = map;
 9     }
10     @Override
11     public String execute() throws Exception {14         ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
15         ServletActionContext.getResponse().getWriter().println(Arrays.asList(map));
16         return NONE;
17     }

 

1            <form action="${pageContext.request.contextPath}/userAdd" method="get">
2                <input type="text" name="map['a'].userName" value="张三">
3                <input type="text" name="map['a'].userPwd" value="123三">
4                <input type="text" name="map['b'].userName" value="李四">
5                <input type="text" name="map['b'].userPwd" value="123四">
6                <button>添加</button>
7            </form>

结果为[{a=[userName:张三,userPwd:123三], b=[userName:李四,userPwd:123四]}]

最后总结一下,在Struts2中,数组的赋值在Action里面的写法都大同小异,需要注意的是前台的代码写的方式不一样。(Struts2学习笔记)

  --2019.7.4 我在冬天,赌的是下一次春天

 

posted @ 2019-07-04 21:32  zemengchen  阅读(226)  评论(8编辑  收藏  举报