IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Struts2学习笔记之s:select标签

    李阳发表于 2015-08-28 04:59:11
    love 0

    最近到新公司里,用到的技术也是比较流行和使用人数比较多的Struts2、Mybatis、Spring,对于我这个出生于外包公司的程序猿来说,这些框架都比较“陌生”了,因为一般外包公司都用自己公司的一套框架!导致我SSM忘记了不少,刚好到新公司可以继续学习使用,那么今天先来一发struts2的select标签:

    首先从简到难,静态赋值:

    <s:select name="user.sex" list="#{'0':'男','1':'女'}" label="性别" headerKey="" headerValue="请选择性别"></s:select>

    这样就会出现下拉框,默认是请选择性别,点开后是男女,根据firebug,看到男女前面对应的是0和1,比起原生态的select标签简单多了。

    注释:这里从页面来静态构造下拉选项,关键点是list=”#{‘0′:’男’,’1′:’女’}” 通过它实现的select的两个option 。headerKey指定默认的选项”key”,headerValue指定默认的选项”value”。

    再看看设置下拉列表的数据:

    <%  
                java.util.HashMap map = new java.util.LinkedHashMap();  
                map.put(1, "A公司");  
                map.put(2, "B公司");  
                map.put(3, "C公司");  
                request.setAttribute("map", map);  
                request.setAttribute("aa", "D公司");  
        %>

    <s:select list="#request.map"  label="abc" listKey="key" listValue="value" value="#request.aa"  headerKey="0" headerValue="aabb"></s:select>

    value的值设置为了2,所以初始化下拉框时,会自动选择key值为2的选项。

    最后,配合Struts2的action看看效果吧:

    UserDao的代码:

    @Repository("userDao")
    public interface UserDao extends SqlMapper {
    
        public List<User> selectAll();
        public User getById(Integer id);
        public User loginCheck(@Param("loginName")String login_name,@Param("password")String password);
        public int updateUser(User user);
        public int deleteById(Integer id);
        public int add(User user);
        @Select("SELECT a.*,b.* from users a ,orgs b where a.org_id = b.id")
        public List<Map> getUserInfo();
        @Select("SELECT * from orgs ORDER BY id")
        public List<Map> getOrgs();
    }

    UserAction的代码:

    @Action("getuserinfo")
    	public String getAllUsers() {
    		List<Map> userList = userDao.getUserInfo();
    		List<Map> orgs = userDao.getOrgs();
    		if (userList != null) {
    			ServletActionContext.getRequest().setAttribute("userlist", userList);
    			ServletActionContext.getRequest().setAttribute("orgs", orgs);
    			return SUCCESS;
    		} else {
    			return ERROR;
    		}
    	}

    试图jsp页面:

    <div class="adduserbox">
        <div class="tit">新建帐号<span>X</span></div>
        <form action="adduserinfo.feinno" method="post" name="saveForm" id="saveForm">
        <div class="content1">
        	<div class="name">
        		<div class="fields">姓名:</div> <input type="text" name ="name" placeholder="请输入姓名" autocomplete="off">
        	</div>
        	<div class="name">
        		<div class="fields">电话:</div> <input type="text" name ="svc_url"  placeholder="请输入电话号码" autocomplete="off">
        	</div>
        	<div class="name">
        		<div class="fields">公司:</div> <s:select name="company" list="#request.orgs" headerKey="" headerValue="请选择公司" listKey="id" listValue="org_name"></s:select>
        	</div>
        	<div class="name">
        		<div class="fields">邮箱: </div><input type="text" name ="img_url"  placeholder="请输入邮箱地址" autocomplete="off">
        	</div>
        	<div class="name">
        		<div class="fields">登录帐号:</div> <input type="text" name ="img_url"  placeholder="请输入登陆账号" autocomplete="off">
        	</div>
        	<div class="other">
        		<button class="btn  left blue" id="saveQuickService">保存</button>
        		<button class=" write btn  right" id="calcle">取消</button>
        	</div>
        </div>
        </form>
    </div>

    这段代码是jsp里面的一块,点击新增用户弹出的弹出窗。

    大家可以看到在“公司”这一个表单里的使用方法,首先给一个名称name属性,然后需要现实的List,list属性,listKey说明下拉框的key值对应id(公司ID)字段,listValue说明下拉框的显示部分对应org_name(公司名称)字段。很简单,很强大,很快捷。

    未经允许不得转载:李阳博客 » Struts2学习笔记之s:select标签



沪ICP备19023445号-2号
友情链接