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">&nbsp;</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">&nbsp;</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">&nbsp;</html:option>
    <html:options collection="allLicenses" property="id"
labelProperty="name" />
</html:select><br>

I get what I expect

<select name="license">
        <option value="-1">&nbsp;</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: user@struts.apache.org
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">&nbsp;</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]

Reply via email to