zoukankan      html  css  js  c++  java
  • Struts2把数据封装到集合中之封装到map中

    struts框架封装数据可以封装到集合中也可以封装到map中,该篇博客主要讲解将数据封装到map中。

    1. 封装复杂类型的参数(集合类型 Collection 、Map接口等)
    2. 需求:页面中有可能想批量添加一些数据,那么现在就可以使用上述的技术了。把数据封装到集合中
    3. 把数据封装到Map中(双元素集合)
        * Map集合是键值对的形式,页面的写法
            > <input type="text" name="map['one'].name" />
        * Action中提供map集合,并且提供get和set方法
    以map集合为例:
    1.创建javaBean类User:
    package com.huida.domain;
    
    public class User {
        
        private String username;
        private String password;
        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;
        }
        @Override
        public String toString() {
            return "User [username=" + username + ", password=" + password + "]";
        }
        
        
    }

    2.创建Action类Regist5Action:action类的写法与数据封装中的属性封装类似:定义属性map,对map定义其set和get方法。

    package com.huida.action1;
    
    import java.util.Map;
    
    import com.huida.domain.User;
    import com.opensymphony.xwork2.ActionSupport;
    
    
    public class Regist5Action extends ActionSupport{
        
        private Map<String, User> map;
    
        public Map<String, User> getMap() {
            return map;
        }
    
        public void setMap(Map<String, User> map) {
            this.map = map;
        }
        @Override
        public String execute() throws Exception {
    
            for(String str:map.keySet()){
                User user=map.get(str);
                System.out.println(str+"..."+user);
            }
            return NONE;
        }
        
    }

    3.在struts.xml中对action进行配置:

    <package name="demo" namespace="/" extends="struts-default">
            <action name="regist5Action" class="com.huida.action1.Regist5Action"></action>
     </package>

    4.书写表单:

    这里需要注意的地方:

    (1)表单input标签中name的值中集合的名字map应该与Regist5Action中定义的属性名相同。

    (2)map[ ]方括号里面的内容可以随便写,但是同一条记录中的两个输入框要保持一致。这里面的one相当于map的键值。

    <h3>数据封装到map集合中</h3>
        <!-- 将数据封装到集合中,可以封装多条数据,所以我们在这里多写几个记录 -->
        <form action="${ pageContext.request.contextPath }/regist5Action.action" method="post"> 
            姓名<input type="text" name="map['one'].username"/><br/><!-- map[ ]这里面的内容随便写,但是同一条记录中的两个输入框要保持一致。这里面的one相当于定义map中 的String类型的值 -->
            密码<input type="text" name="map['one'].password"/><br/>
            姓名<input type="text" name="map['two'].username"/><br/>
            密码<input type="text" name="map['two'].password"/><br/>
            <input type="submit" value="注册">
            
        </form>

    启动服务器,运行表单index.jsp。在输入框中输入姓名和密码,点击注册,在控制台输出如下内容表示封装成功:

     

     

  • 相关阅读:
    随 机 贪 心
    QWidget,QMainWindow和QDialog的区别
    粒子系统和Ogre 3D扩展 -----OGRE 3D 1.7 Beginner‘s Guide中文版 第十章(终章)
    setStyleSheet 设置多个属性
    Ogre 3D的启动顺序 -----OGRE 3D 1.7 Beginner‘s Guide中文版 第九章
    合成器框架 -----OGRE 3D 1.7 Beginner‘s Guide中文版 第八章
    Ogre 3D与材质 -----OGRE 3D 1.7 Beginner‘s Guide中文版 第七章
    场景管理器 -----OGRE 3D 1.7 Beginner‘s Guide中文版 第六章
    使用Ogre 3D 运动模型 -----OGRE 3D 1.7 Beginner‘s Guide中文版 第五章
    摄像机,光源和阴影 -----OGRE 3D 1.7 Beginner‘s Guide中文版 第四章
  • 原文地址:https://www.cnblogs.com/wyhluckdog/p/10106769.html
Copyright © 2011-2022 走看看