云自无心水自闲

天平山上白云泉,云自无心水自闲。何必奔冲山下去,更添波浪向人间!
posts - 288, comments - 524, trackbacks - 0, articles - 6
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

在Struts2中,radio标签可以使用一个list来输出一组radio按钮,
        <s:radio name="sex" list="#{'male','female'}" label="%{getText('app.label.sex')}" />
但是如何设置其中一个被默认选中。

查阅了struts2的文档,发现radio标签有一个value属性是用于对radio的进行预选的: http://struts.apache.org/2.x/docs/radio.html
value: Preset the value of input element.
于是,进行了试验,<s:radio name="sex" list="#{'male','female'}" label="%{getText('app.label.sex')}" value="male" />
结果失败了。male的值并没有被选中,经过反复研究,终于得到了正确的结果:
<s:radio name="sex" list="#{'male','female'}" label="%{getText('app.label.sex')}" value="'male'" />
看到其中的区别了吗,就是多了两个单引号。
我认为这是因为value属性的特性引起的。如果male没有加引号,那么struts2会去值的堆栈中寻找变量名为male的值,结果找不到。
加上单引号后,struts2(应该是ognl)把'male'认为是一个简单的字符串。

这样,radio就能够正确地匹配到值,使指定的值默认被选中




评论

# re: Struts2中对于radio list的预选(pre select),即:使一个值被默认选中[未登录]  回复  更多评论   

2008-01-28 11:27 by 过客
我试了一下.的确可以使一个选项默认选中.
但是在使用cancel回退时,假如我选择了female,回退回来以后还是选中的male.

# re: Struts2中对于radio list的预选(pre select),即:使一个值被默认选中[未登录]  回复  更多评论   

2008-02-01 19:42 by 云自无心水自闲
不知道是你怎么回退的,可以详细说一下吗?是javascript的back吗?

# re: Struts2中对于radio list的预选(pre select),即:使一个值被默认选中  回复  更多评论   

2008-10-20 14:06 by 路人
谢谢分享,正好碰到相同的问题

# re: Struts2中对于radio list的预选(pre select),即:使一个值被默认选中  回复  更多评论   

2009-11-11 17:24 by ww
这样在提交后他还说选中的是最开始默认的那个啊 我要在提交后让它变成是你提交前选中的要怎么做?

# re: Struts2中对于radio list的预选(pre select),即:使一个值被默认选中  回复  更多评论   

2011-04-27 09:28 by fds
fds

# re: Struts2中对于radio list的预选(pre select),即:使一个值被默认选中  回复  更多评论   

2012-10-08 20:21 by oop
select 默认选中问题的解决,分享一下解决办法,http://www.betterhelper.net/bencandy.php?fid=86&id=3501,,自己真实检验过代码的,可以用的

# re: Struts2中对于radio list的预选(pre select),即:使一个值被默认选中[未登录]  回复  更多评论   

2012-11-22 11:50 by winnie
谢谢 刚好遇到这个问题

只有注册用户登录后才能发表评论。


网站导航: