Reputation: 6062
How can I set multiple default value using select tag in struts2. For e.g I have list of names with "nameA, nameB, nameC". I want that these three names will be selected by default. I can populate a list but struggling to set multiple default value.
<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>
Upvotes: 0
Views: 6351
Reputation: 24396
You need to use value
attribute of <s:select>
tag. And because you are using bean to generate <s:select>
values you need to create list of bean properties that you used in listKey
attribute. In your case a list of id
-s.
<s:set var="idsList" value="{'id1','id2','id3'}" />
<s:select list="name.nameList" listKey="id" listValue="displayName" multiple="true" value="%{#idsList}" />
In order to select all use your list with OGNL projection selecting id-s in it.
<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>
Upvotes: 2
Reputation: 50193
Point to your List
of names from the value
attribute...
<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>
Upvotes: 0