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的说法,暂时不知道怎么处理好。

  • 相关阅读:
    Maximum of lines in a DataBand
    "New page after" by code
    How to show out three rows from the same databand On A4?
    Asp.Net Core 第07局:路由
    Asp.Net Core 第06局:中间件
    Asp.Net Core 第05局:读取配置
    Asp.Net Core 第04局:依赖注入
    POJ-1003
    ORACLE 存储过程实例 [备忘录]
    关于操作有符号数的溢出问题
  • 原文地址:https://www.cnblogs.com/meetcomet/p/3408826.html
Copyright © 2011-2022 走看看