作者: jiake0504  链接:http://jiake0504.javaeye.com/blog/242506  发表时间: 2008年09月15日

声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!

在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就能够正确地匹配到值,使指定的值默认被选中


已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐



posted on 2008-09-15 18:14  海鹏  阅读(1135)  评论(0编辑  收藏  举报