在struts2的表单标签中,如select,checkbox,radio,combobox等,在初始化的时候是可以有一个默认值的,这就需要用到value这个属性,例子如下:
<s:select name="gender" list="#{1 :'男',0 :'女'}" headerKey="-1" headerValue="请选择" value="gender"/>
这个select标签会根据value="gender"中的gender这个变量名到堆栈中寻找变量名为gender的值,如果有和1或者0匹配的就会选中
请注意下面的两个例子的区别:
<s:radio name="sex" list="#{'male','female'}" value="male" />
<s:radio name="sex" list="#{'male','female'}" value="'male'" />
第一个是寻找堆栈中寻找变量名为male的值,然后通过值进行判断
第二个是直接匹配了male,而不到堆栈中寻找变量,这是因为如果male没有加引号,那么struts2会去值的堆栈中寻找变量名为male的值;加上单引号后,struts2(应该是ognl)把'male'认为是一个简单的字符串。