zoukankan      html  css  js  c++  java
  • Struts2学习7---集合类型的类型转换

    使用OGNL表达式类型转换时,struts是自动转换的。但是集合类型需要配置。

    一、User类

    一个普通一般的类

    package com.meetcomet.entity;
    
    public class User {
        
    
        private String username;
        private String password;
        private String email;
        
        
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
    
        
    }
    View Code

    二、UserListAction

    public class UserListAction  extends ActionSupport{
        
        private  List<User> users;
        
      public String execute() throws Exception { users = new ArrayList(); User u1= new User(); u1.setUsername("张三"); u1.setPassword("123456"); u1.setEmail("zhangshan@qq.com"); .....(添加了4个user).... return SUCCESS; } public List<User> getUsers() { return users; } public void setUsers(List<User> users) { this.users = users; } }

    三、配置文件
    UserListAction-conversion.properties

    Element_users=com.meetcomet.entity.User

    注意为固定写法,users为UserListAction中的成员变量。

    四、jsp文件

    1.输入

        <s:form action="/user/userlist">
             <s:iterator value="new int[4]" status="st">
                 <tr>
                     <td>
                         <s:textfield name="users[%{#st.index}].username" label="用户名"/>
                     </td>
                     <td>
                         <s:password name="users[%{#st.index}].password" label="密码"/>
                     </td>
                     <td>
                         <s:textfield name="users[%{#st.index}].email" label="email"/>
                     </td>
                 </tr>
             </s:iterator>
             <s:submit value="提交 "/>
        </s:form>

    2.显示

    <table>
        <th>
        <td>用户名</td><td>密码</td><td>email</td>
        </th>
        <s:iterator value="users" status="st">
            <tr>
                <td><s:property value="username"/></td>
                <td><s:property value="password"/></td>
                <td><s:property value="email"/></td>
            </tr>
        </s:iterator>
        <tr>
        </tr>
    </table>

    运行后会显示用户列表。

     ------------------------------------

    关于SET集合,我按照通常的做会产生如下的错误

    Error setting expression 'users.makeNew[0].username' with value '[Ljava.lang.String;@5ab5b91'
    ognl.OgnlException: Error getting property descriptor: null
     at com.opensymphony.xwork2.ognl.accessor.XWorkCollectionPropertyAccessor.getProperty法

    根据http://javaligang.blog.51cto.com/5026500/874468的说法,暂时不知道怎么处理好。

  • 相关阅读:
    01 变量、基本数据类型
    02 gitlab的基本使用
    kubernetes
    02 redis高可用集群
    Redis & ELK
    01 Redis安装、配置详解、数据备份与恢复
    Jenkins
    01 git gitlab jenkins的安装
    golang mysql 客户端
    接口类
  • 原文地址:https://www.cnblogs.com/meetcomet/p/3408826.html
Copyright © 2011-2022 走看看