Struts2学习笔记之s:select标签

貌似Struts2 标签都快忘光了  今天先来一发struts2的select标签:

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

1
< 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”。

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

1
2
3
4
5
6
7
8
     <%   
             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公司" ) ;   
     %>

1
< 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的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@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的代码:

1
2
3
4
5
6
7
8
9
10
11
12
@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页面:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
< 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(公司名称)字段。很简单,很强大,很快捷。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值