发现struts列表标签的一个弊端,各位是否碰到?

mycsdnid 2004-08-06 11:32:51
今天发现struts中的html:option标签的一个问题:

当需要初始化页面列表值时,只能初始化静态的option,即在页面中已经写好了的:
<html:select property="selected">
<html:option value="value1">label1</html:option>
<html:option value="value2">label2</html:option>
<html:option value="value3">label3</html:option>
...
</html:select>

而对应在页面初始时动态生成的option值就不能对其进行初始化,如下:
<html:select property="selected">
<html:optionsCollection property="itemCollection" />
</html:select>

本人认为原因可能是在页面生成时首先进行了selected的初始化,然后才进行itemCollection的解析,于是无法找到对应的value值。

对于这种情况,大家是如何解决的。
...全文
151 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mycsdnid 2004-08-06
  • 打赏
  • 举报
回复
我问的很多人好像都说不可以,只有用iterator进行option初始化,在初始的过程中比较值然后设属性selected。

我闲这种方法太麻烦了,所以希望谁有更方便的方法说出来,大家学习学习!
areshong 2004-08-06
  • 打赏
  • 举报
回复
好像没有这么回事,我用optionsCollection是可以初始化的,是不是和楼主未设label和value属性有关
<html:select property="opSelected" style="width: 120px" onchange="return submit();">
<html:optionsCollection name="fileOutportForm" property="opList" label="opName" value="opID"/>
</html:select>
另,selected一定要在optionsCollection的value属性列表中,不然是不可能初始化的
mycsdnid 2004-08-06
  • 打赏
  • 举报
回复
初始化意思是:在页面载入时就选中某项,例如要求选中label2,则在Form的reset中设置selected="2"即可以。


不知道导致这种情况的原因我说的是否正确,如何做到动态创建列表又能赋初始值?欢迎大家指教!
mycsdnid 2004-08-06
  • 打赏
  • 举报
回复
问题解决了,是我的value有问题,我从数据库中取出的value没想到后面却带了空格,找了半天才发现,结贴,谢谢捧场!
zhousm6 2004-08-06
  • 打赏
  • 举报
回复
假设在 form中定义:
private string currentValue = ……;
private string[] optValue = ……;
private string[] optName = ……;

那么在jsp中用:
<html:select property = "currentValue">
<html:option property = "optValue" labelproperty = "optName"/>
</html:select>
即可将设定的默认值表示出来
charmguy 2004-08-06
  • 打赏
  • 举报
回复
楼主所说的问题,我没碰到过,我的JSP跟楼主的一样简单,也是用LabelValueBean包装lavel和value的,但下拉框却是可以进行初始化,郁闷!
mycsdnid 2004-08-06
  • 打赏
  • 举报
回复
areshong(strength&honor)的方法我也试了一下,自己定义了一个Bean来保存label和value,然后压入一个Collection中,结果也没有显示出符合要求的初始值。注:初始值肯定在value列表中。
mycsdnid 2004-08-06
  • 打赏
  • 举报
回复
label与value我用的是LabelValueBean,没有另外定义自己的结构。

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧