2013-07-23 63 views
0

如何在struts2中使用select标签设置多个默认值。例如,我有名称列表“nameA,nameB,nameC”。我希望这三个名字将被默认选中。我可以填充列表,但努力设置多个默认值。在struts2中选择标签中设置多个默认值

<s:select id  = "name" 
      size  = "5" 
      name  = "nameForm.nameIds" 
      cssStyle = "width:365px;margin-top:10px; margin-bottom:10px;" 
      list  = "name.nameList" 
      listKey = "id" 
      listValue = "displayName" 
      multiple = "true" 
></s:select> 

回答

0

指向你从value属性名称的List ...

<s:select id  = "name" 
      size  = "5" 
      name  = "nameForm.nameIds" 
      cssStyle = "width:365px;margin-top:10px; margin-bottom:10px;" 
      list  = "name.nameList" 
      listKey = "id" 
      listValue = "displayName" 
      multiple = "true" 
      value  = "%{yourList}" 
></s:select> 
+0

谢谢安德烈。但我想强调一下,这些都是选中的。请告诉我我该怎么做? –

+0

例如,当我点击一个值时,它会突出显示它,但是如何在上面的情况下做到这一点,而不必点击它。然后我想显示这些是默认高亮的。谢谢 –

+0

完全如上; yourList必须是在Action中填充的选定名称的ID列表,并用getter公开;我想这已经很清楚了:| –

2

您需要使用<s:select>标签的value属性。而且因为您使用bean来生成<s:select>值,您需要创建在listKey属性中使用的bean属性列表。在你的情况下,列表id-s。

<s:set var="idsList" value="{'id1','id2','id3'}" /> 
<s:select list="name.nameList" listKey="id" listValue="displayName" multiple="true" value="%{#idsList}" /> 

为了选择所有使用您的列表与OGNL投影选择ID-S在它。

<s:select id  = "name" 
      size  = "5" 
      name  = "nameForm.nameIds" 
      cssStyle = "width:365px;margin-top:10px; margin-bottom:10px;" 
      list  = "name.nameList" 
      listKey = "id" 
      listValue = "displayName" 
      multiple = "true" 
      value  = "%{name.nameList.{id}}" 
></s:select> 
+0

每个参数可能有多个值,因此可以默认设置。 +1,未经测试。 –

+0

@Java_NewBie:另请参阅此问题http://stackoverflow.com/q/14565387/1700321。 –