zoukankan      html  css  js  c++  java
  • 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 我在冬天,赌的是下一次春天

    因上努力,果上随缘
  • 相关阅读:
    一台Ubuntu server上安装多实例MySQL
    用VirtualBox构建MySQL测试环境笔记
    Mac点滴
    MySQL复制(三) --- 高可用性和复制
    Linux性能监控的几个工具(转)
    前端读者 | Javascript设计模式理论与实战:状态模式
    前端读者 | 为什么页面跟设计稿差距这么大?是啊!为毛啊?
    前端读者 | 由setTimeout引发的JS引擎运行机制的研究
    前端读者 | Web App开发入门
    前端读者 | 从一行代码里面学点JavaScript
  • 原文地址:https://www.cnblogs.com/zemengcheng/p/11135050.html
Copyright © 2011-2022 走看看