struts2的<s:select>的用法

问题描述

<s:select name="attend" list="#{0:'选择',1:'出勤',2:'缺席',3:'迟到',4:'早退'}" cssClass="select2"></s:select>这样构成一个选择列表。但是,我觉得list里面的东西是可变的。如果每个页面都充斥着这样代码,日后可能很难维护。我想把list的值放到静态方法里面,然后进行访问,结构报错。public static Map<String, Object> getAttendState(){Map<String, Object> map = new HashMap<String, Object>();map.put("0", "选择");map.put("1", "出勤");return map;}在jsp里面使用<s:select name="attend" list="@com.util.StateHelp@getAttendState()" s:select>结果出错了。如果把这些变量写在静态方法里面,然后在<s:select>里调用,该怎么写?谢谢 问题补充:并且对map进行排序

解决方案

List<Map> abc = new ArrayList<HashMap>()Map map1 = new HashMap();Map map2 = new HashMap();map1.put("KEY", "0");map1.put("VALUE", "选择");map2.put("KEY", "1");map2.put("VALUE", "出勤");abc.add(map1);abc.add(map2);然后页面上面就可以只要写:<s:select list="abc" listKey="KEY" listValue="VALUE"></s:select>
解决方案二:
把map作为成员变量 get和set一下jsp中如下写:<s:select list="map" listKey="key" listValue="value" headerKey="" headerValue=""></s:select>试一试
解决方案三:
首先<s:select>中的属性list是只接受List<Map>形式的对象,而不是Map对象以下是个人的修改意见:1.你可以在你的静态方法里面,将map对象转化为JSON格式的字符串返回;2.你可以在你的Action中定义一个共用的List<Map>对象,来存放下拉框的值,例如:List<Map> abc = new ArrayList<HashMap>();然后写一个初始化的方法,往该List里面存放下拉框的值,另外,需要在Action中添加对应的get和set方法,最后,你在页面上面就可以直接写成<s:select list="abc" listKey="XXX" listValue="YYY"></s:select>listKey和listValue指的就是map里面的key。

时间: 2024-10-24 04:21:05

struts2的&amp;lt;s:select&amp;gt;的用法的相关文章

mysql SELECT FOR UPDATE 语句用法详解

以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE READ,在SELECT 的读取锁定主要分为两种方式: SELECT ... LOCK IN SHARE MODE SELECT ... FOR UPDATE 这两种方式在事务(Transaction) 进行当中SELECT 到同一个数据表时,都必须等待其它事务数据被提交(Commit)后才会执行.而主要的不同在于LOCK IN SHARE MODE 在有一方事务要Update

jsp中select的onchange事件用法实例_JSP编程

本文实例讲述了jsp中select的onchange事件用法.分享给大家供大家参考,具体如下: <script language = "JavaScript"> var onecount; onecount=0; subcat = new Array(); <% int count = 0; java.sql.ResultSet rs1 = DBManage.executeQuery("select hydm,zhydm,zhymc from zhy &qu

struts2标签&amp;amp;lt;s:select&amp;amp;gt;数据回显的问题

问题描述 struts2标签<s:select>数据回显的问题 同样通过value属性,进行回显."呼吸系统"正常,"眼睛光反射"不正常. 解决方案 那你的"眼睛光反射"是和"呼吸系统"一样的存储类型吗? 解决方案二: Struts2标签回显问题

struts2中&amp;amp;lt;s:select&amp;amp;gt;标签只能输出显示值,隐藏的value值出不来,内附详情

问题描述 struts2中<s:select>标签只能输出显示值,隐藏的value值出不来,内附详情 原本没有学习struts2时,下拉列表框是用一个集合保存,然后放到作用域,在页面上使用循环输出,这样没问题: 后台java代码 Java代码 收藏代码 private List streetList; public List getStreetList() { return streetList; } public void setStreetList(List streetList) { t

关于struts2 下用html 的select问题

问题描述 对于struts2的标签一直不太喜欢,感觉很不标准.比如说一个<s:textfield></s:textfield>在被解析成html的时候会多一对<tr>,所以页面中很多标签我都尽量用的html,但是在用select的时候遇到了一些问题,请教一下大家.首先是在js中,我用document.getElementById("sle").value得到的是一个""值,可以肯定我的select每一个option的value都有

再问&amp;amp;quot;孟子e章先生&amp;amp;quot;javascript修改struts2的 &amp;amp;lt;s:select&amp;amp;gt;的选项是怎么解决的

问题描述 <s:selectid="label"label="版本"name="product.gameVersion"list="#{1:'中文版',2:'英文版'}"/>我用下面的方法修改,确没有任何效果<scriptlanguage="JavaScript">varlabel=document.getElementById("label");label.li

10个mysql中select语句的简单用法_Mysql

1.select语句可以用回车分隔 $sql="select * from article where id=1" 和 $sql="select * from article where id=1",都可以得到正确的结果,但有时分开写或许能更明了一点,特别是当sql语句比较长时 2.批量查询数据 可以用in来实现 $sql="select * from article where id in(1,3,5)" 3.使用concat连接查询的结果 $

mysql SELECT FOUND_ROWS()与COUNT(*)用法区别

SELECT语句中经常可能用LIMIT限制返回行数.有时候可能想要知道如果没有LIMIT会返回多少行,但又不想再执行一次相同语句.那么,在SELECT查询中包含SQL_CALC_FOUND_ROWS选项,然后执行FOUND_ROWS()就可以了:  代码如下 复制代码 mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name       -> WHERE id > 100 LIMIT 10; mysql> SELECT FOUND_ROWS

VBS中Select CASE的其它用法_vbs

marr=20select case true case marr<12  response.write "小于12" case marr>12  response.write "大于12" case marr=12  response.write "=="end select   还可以这样用 case marr> 7 and marr<12