I think I am. I changed the JSP to also display the license id as a
text field. The JSP is
<html:form action="/updateSoftware" >
<html:hidden property="id"/>
Name <html:text property="name" /><br>
Location <html:text property="location" /><br>
Approved <html:checkbox property="approved"
value="true"/><br>
License ID: <html:text property="license" /><br>
License
<html:select property="license" value="license">
<html:option
value="-1"> </html:option>
<html:options collection="allLicenses"
property="id" labelProperty="name" />
</html:select><br>
Notes <html:text property="notes" /><br>
<html:submit/>
</html:form>
The HTML that is outputted is
<form name="SoftwareForm" method="post"
action="/SoftwareTracker2/updateSoftware.do">
<input type="hidden" name="id" value="1">
Name <input type="text" name="name" value="Apache Web Server"><br>
Location <input type="text" name="location" value="loc2"><br>
Approved <input type="checkbox" name="approved" value="true"><br>
License ID: <input type="text" name="license" value="42"><br>
License
<select name="license">
<option value="-1"> </option>
<option value="22">Apache Software License</option>
<option value="42">asd</option>
</select><br>
Notes <input type="text" name="notes" value=" "><br>
<input type="submit" value="Submit">
</form>
As you can see, the license id has a value of 42. There is an option
with a value of 42 that is not selected. If I hard code the 42 so I
have JSP that looks like
<html:select property="license" value="42">
<html:option value="-1"> </html:option>
<html:options collection="allLicenses" property="id"
labelProperty="name" />
</html:select><br>
I get what I expect
<select name="license">
<option value="-1"> </option>
<option value="22">Apache Software License</option>
<option value="42" selected="selected">asd</option>
</select><br>
Jon
-----Original Message-----
From: news [mailto:[EMAIL PROTECTED] On Behalf Of Laurie Harper
Sent: Tuesday, August 22, 2006 4:53 PM
To: [email protected]
Subject: Re: select tag and value issue
Your JSP code looks OK (except obviously you want to remove the
value="22" from the html:select tag). Are you sure the value you're
setting in form.license is correct?
L.
Jonathan Drnek wrote:
> I'm fairly new to struts and am having a problem with the
<html:select>
> tag. I can't get the value property to work correctly. I have a list
of
> licenses that I want displayed in the drop down box. I want the
license
> that is used by the current software to be selected.
>
> If I hard code the value property to be 22 for example, the license
that
> has 22 for its key is selected. It seems like I should be able to use
> the license property in my SoftwareForm bean for the value but that
does
> not work. When I do that, nothing ends up being selected.
>
> My JSP page looks like
>
> <html:form action="/updateSoftware" >
> <html:hidden property="id"/>
> Name <html:text property="name" /><br>
> Location <html:text property="location" /><br>
> Approved <html:checkbox property="approved" value="true"/><br>
> License
> <html:select property="license" value="22">
> <html:option value="-1"> </html:option>
> <html:options collection="allLicenses" property="id"
> labelProperty="name" />
> </html:select><br>
> Notes <html:text property="notes" /><br>
> <html:submit/>
> </html:form>
>
> My action mapping looks like.
>
> <action name="SoftwareForm" path="/updateSoftware"
> scope="request"
> type="org.springframework.web.struts.DelegatingActionProxy"
> input="/EditSoftware.jsp">
> <forward name="success"
> path="/loadAllSoftware.do">
> </forward>
> <forward name="Failure"
> path="/EditSoftware.jsp">
> </forward>
> </action>
>
> As you can see I am using spring.
>
> My SoftwareForm bean contains the String properties you would expect.
>
> In the action that forwards to the above form I have the following
code
>
> Software s = softwareDAO.get(Long.decode(id));
> Iterator i = licenseDAO.getAllLicenses();
>
> SoftwareForm sForm = new SoftwareForm();
> sForm.setApproved(Boolean.toString(s.isApproved()));
> sForm.setId(s.getId().toString());
> sForm.setLicense(s.getLicense().getId().toString());
> sForm.setLocation(s.getLocation());
> sForm.setName(s.getName());
> sForm.setNotes(s.getNotes());
>
> request.setAttribute("SoftwareForm",sForm);
> request.setAttribute("allLicenses",i);
>
> This seems like it should be a fairly simple thing to do. What am I
> missing?
>
> Jon
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]