struts 2 采用OGNL对象导航语言,action本身的对象放在值栈(OGNL根对象)中,访问的时候可直接访问,不需要加"#",而用<s:iterator>标签,访问列表的某一元素的属性是需要加"#"的,如下代码。以上是来自struts2文档,应该无误。 那么如果在<s:iterator>里面,访问值栈中的对象,而这个对象名字刚好和列表元素的属性名字一样呢?经过验证,这样是无法访问到值栈中的对象的,而只能访问到同名的列表元素的属性。如代码中的<s:if test="id==#bean.id">selected</s:if>里面的id和#bean.id会是同一个对象,故逻辑判断永远为真。如果struts2 就是设计成这样子的,那么在<s:iterator>内部如何访问值栈中的这个和列表元素的属性同名的对象呢?
达人一起来探讨一下。
<s:iterator value="list" id="bean" status="sta">
<option <s:if test="id==#bean.id">selected</s:if> value="<s:property value="#bean.id" />" >
<s:property value="#bean.title" />
</option>
</s:iterator>
达人一起来探讨一下。
<s:iterator value="list" id="bean" status="sta">
<option <s:if test="id==#bean.id">selected</s:if> value="<s:property value="#bean.id" />" >
<s:property value="#bean.title" />
</option>
</s:iterator>
解决方案 »
- Apusic金蝶中间件,求指导。
- JAVABEAN中无法获取组件的值输入到数据库中。
- Hibernate 事务提交问题,求高手。。。1000分送完
- 如何通过servlet让jrun重启???
- 请问各位有没有Elipse 3.9m9能用的Tomcat插件啊???
- 在jsp页面上如何调用客户端的com组件
- 一个关于session的问题
- 请帮我一下,这个问题怎么老是出来啊~~
- 如何将基于swing开发的java客户端程序,嵌入已有的jsp网页中? 请大侠赐教。
- 毕业论文答辩,在session中传递矢量的利弊
- 初学spring/web/mvc配置老有问题,tomcat启动就过不了帮忙看一下吧。
- 在网页中 嵌入WMP 怎么让它边缓冲 边观看
谢谢,
这个的替代解决方案很简单的,很容易解决。我只是想探讨一下这里是否有bug。还是自己对这些标签还有不了解的地方。
这是什么意思
这里本来是想用action的一个属性“id” 和 列表元素的属性#bean.id作比较,但结果却是id 和 #bean.id都是列表元素的属性。按理说 id 应该会引用到action的属性“id”,结果却不是。
<s:select list="dictlist" value="%{dictitem.dcaid}" name="dcaid" listKey="id" listValue="name" />这里的value等于你的那个选中的值就可以默认选中那个项了
确实,用<s:select>方便很多,主要是以前在table里用了<s:file><s:textarea>会自动生成一些html代码,破坏了表格,再加上html标签已经很熟,用struts标签要查资料,以致讨厌struts标签。用html标签虽然麻烦点,但因为熟悉反而更快,却可以自己完全控制html源码。 另:我提的问题可有答案?