Struts2.0与客户端数据的交互

(一)客户端获取Action中数据-----------------------

在struts2中,设进session的话则应该变成这样了,因为session是一个map类型: 

Java代码  收藏代码
  1. public String findAllUsers() throws Exception {  
  2.       
  3.     List<User> userList = userService.findAllUsers();  
  4.     session.put("userList", userList);  
  5.     //request.setAttribute("userList", userList);  
  6.       
  7.     return SUCCESS;  
  8. }  


据说,如果直接到jsp页面的话,一般推荐用request而不用session,多人单机同时操作的话保险一点,虽然一个浏览器同一时间只有一个session。 

在jsp页面取值的话: 

Html代码  收藏代码
    1.     <table class="table_report">  
    2.     <tr>   
    3.         <th>用户ID</th>  
    4.         <th>用户名称</th>  
    5.         <th>用户性别</th>  
    6.         <th>用户年龄</th>  
    7.         <th>用户地址</th>  
    8.         <th>用户电话</th>  
    9.         <th>用户邮箱</th>  
    10.     </tr>  
    11.     <!-- struts2最正规的取值方式 -->  
    12. <%--  <s:iterator id="user" value="%{#session.userList}">--%>  
    13.   
    14.    <s:iterator id="user" value="#session.userList">  
    15. <%--   <s:iterator id="user" value="#request.userList">--%>  
    16.     <tr>  
    17.         <td>${user.id}</td>  
    18.         <td>${user.name}</td>  
    19.         <td>${user.sex}</td>  
    20.         <td>${user.age}</td>  
    21.         <td>${user.address}</td>  
    22.         <td>${user.phone}</td>  
    23.         <td>${user.email}</td>  
    24.     </tr>  
    25.     </s:iterator>  
    26.   </table>  
    27. <%-- 用完要清空 --%>  
    28. <%request.removeAttribute("userList");%>  
    29. <%--<%session.removeAttribute("userList");%>--%>  

(二)Action中获取客户端数据-----------------------

1.通过属性驱动式  

  1. <form action="sys/login.action" method="post">    
  2.     <input type="text" name="username">    
  3.     <input type="submit" value="submit">    
  4. </form>  


Action:直接通过get、set方法获取。

  1. ublic class sysAction extends ActionSupport{    
  2.     private String username;    
  3.    
  4.     public String login() throws Exception {    
  5.         System.out.println(username);    
  6.         return SUCCESS;    
  7.     }    
  8.    
  9.     public String getUsername() {    
  10.         return username;    
  11.     }    
  12.     public void setUsername(String username) {    
  13.         this.username= username;    
  14.     }    
  15. }     

2.模型驱动方式,必须要实现ModelDriven<T>接口。对于要传入多个model第二种方式不方便  

  1. <form action="sys/login.action" method="post">    
  2.     <input type="text" name="username">    
  3.     <input type="submit" value="submit">    
  4. </form>          

Action:必须实现getModel() 方法

 
  1. public class sysAction extends ActionSupport implements ModelDriven<User>{    
  2.     private User user;    
  3.    
  4.     public String login() throws Exception {    
  5.         System.out.println(getModel().getUsername());    
  6.         return SUCCESS;    
  7.     }    
  8.    
  9.     public User getModel() {    
  10.         if (null == user) {    
  11.             return user = new User();    
  12.         }    
  13.         return user;    
  14.     }    
  15. }     

3.第三种方式可以完全不实现ModelDriven<T>,也可使用多个model对象的属性。

  1. <form action="sys/login.action" method="post">    
  2.     <input type="text" name="user.username">    
  3.     <input type="text" name="teacher.level">    
  4.     <input type="submit" value="submit">    
  5. </form>    

Action: 必须提供set方法

    1. public class sysAction extends ActionSupport{    
    2.     private User user;    
    3.     private Teacher teacher;    
    4.    
    5.     public String login() throws Exception {    
    6.         System.out.println(user.getUsername());    
    7.         System.out.println(teacher.getLevel());    
    8.         return SUCCESS;    
    9.     }    
    10.    
    11.     public void setUser(User user) {    
    12.         this.user = user;    
    13.     }    
    14.     public void setTeacher(Teacher teacher) {    
    15.         this.teacher = teacher;    
    16.     }    
    17. }    
原文地址:https://www.cnblogs.com/33blog/p/2654715.html