日期:2014-05-17  浏览次数:20677 次

ognl能取到<c:foreach>中迭代出来的值吗
<c:forEach items="${result}" var="item">
  <s:select name="x" value="xxxx" list="#{1:'1xx', 2:'2xx'}"></s:select>
<c:forEach>
想给s:select动态设选中值,这个value该怎么取呢?谢谢!

------解决方案--------------------
<c:forEach是JSTL,s:select 是STRUTS2标签,list="#{1:'1xx', 2:'2xx'}"是OGNL,很乱,把c:forEach换成<s:iterate>吧

还有就是list="#{1:'1xx', 2:'2xx'}">表示静态的,格式是<s:select list="#{1:'aa',2:'bb',3:'cc'}" label="abc" listKey="key" listValue="value" headerKey="0" headerValue="aabb">

如果要用上面的,需要知道你的${result}是什么东西(对象还是容器),最好还要有SCOPE(哪个内置对象范围),没有的话就#attr.xx,比如你上面的可以写成<s:select name="x" value="="#attr.item.xx" listKey="key" listValue="value"list="#attr.item.xx"></s:select>