I’m using the struts2-jquery plugin I need to set a default value for the sj:select drop-down widget.
The widget currently works and will display all the appropriate values (from a map, where the value is the value to be displayed on the menu). It is called from an action class that handles the appropriate methods.
<s:url id="menu" action="getListofObjects" />
<sj:select name="list" href="%{getListofObjects}" list="objects"/>
Lets say the object is blue and its ID is 3. Currently I have a .jsp page where all the objects are listed. If I click on the ‘3’ it calls an action, which finds the object (blue) and saves both ‘3’ and blue inside the action. Then, it calls a new .jsp page which displays info about the object.
What I want is to have an sj:select drop-down menu that will default to the object I selected (in this case, the colour blue), but when clicked will display the rest of the objects. When I call the widget with value="%{object}" I will get the same object displayed twice.
Does anyone have a solution for this? I’ve seen people using jQuery to scrub the dropdown of duplicates but I want to know if there is a true solution where I can set the default based upon what the dropdown menu returns.
Also, I’m using sj:select because I have some double/triple select methods so I cannot switch to s:select.
Thanks.
Update -> More Code
page1.jsp
<s:iterator value="penList">
<tr class="detail">
<td class="detail">
<s:url action="penUpdate" var="urlTag">
<s:param name="penId"><s:property value="penId"/></s:param></s:url>
<a href="<s:property value="#urlTag" />"><s:property value="penId" /></a></td>
penUpdateAction.java
public String execute(){
getPen();
return Action.SUCCESS;
}
public PenVO getPen(){
penVO = penService.searchPens(penId);
name = penVO.getName();
id = penVO.getPenId();
return penVO;
}
Page1 calls the penUpdateAction which calls page2
Page2.jsp
<s:url id="nameList" action="getNames" />
<sj:select name="name" href="%{nameList}" list="names" onChangeTopics="reloadsecondlist"/>
This is a dropdown menu that shows all available names. It is working but I want it to DEFAULT to the value stored in the penUpdateAction class. Then the user can change the value or leave it as is.
Try this. I have not tested it but i think it should work:
Note: The value of
listKeyandlistValuemust be properties of theObjectin thelistyou are populating thesj:selectwith.The
idproperty set invalueattribute should be a property in your action class which carries the default value that you want to set. Let say the value is3, and you have a select list like thisWhen the page loads, the select will display by default
Blue.Let me know if u have issues doing this.