出什么问题了:
<s:select list="fruits" name="fruitSelect" id="fruitSelect" listKey="fid" listValue="fname" headerKey="-1" headerValue="Pick a fruit!" />
许多在线示例都使用此值:http : //www.coderanch.com/t/439139/Struts/错误选择http://www.mkyong.com/struts2/struts-2-sselect-drop-down-box -例/
但是实际的文档(您可以通过将鼠标悬停在符号上来在Eclipse的工具提示上查看)
列表中第一项的键。一定不能为空!’-1’和’是正确的,’是错误的。
-1在我看来似乎很合逻辑,无论如何都不应该是一个有效的选择。“正确”对我来说在任何层面上都没有意义,因此我对此不太担心。
密钥没什么问题,但是docs可能有点问题:-1是整数密钥,'-1'字符串,''空字符,""空字符串,但密钥不应为空。因此-1,'-1',' '," "是有效的值。从文档:
-1
'-1'
''
""
' '
" "
“ 1”是字符,“ 01”是字符串,“ 1”是字符串。这很重要,因为如果“值”属性返回的值与“列表”属性中的键的类型不同,则即使它们的字符串值相等,它们也不会匹配。如果它们不匹配,则列表中的任何内容都不会被自动选择。
你应该提供的listKey属性对应的字段类型,因此-1是数字类型的整数,而不是' '和" "用于字符和字符串类型。
listKey
框架在比较select标记的键和值时使用类型转换,为避免在OGNL运行时某处发生类型转换错误,最好提供正确的类型,并且两个键属性具有相同的类型。如果键值(不应该为空)与两个属性中指定的值匹配,则将填充标头值选项。
select