Hi,

It should be a simple problem but I tried to solve it without success.
So, mainly, I have javabean used to fill and store a form.
The form consist on 2 Select box and 3 String fields.

Home.html

<td>
<select jwcid="[EMAIL PROTECTED]" name="searchCriteria.requester" size="1"
tabindex="1" class="comboBox9pt">
 <span jwcid="@Foreach" source="ognl:requesters" value="ognl:requester">
   <option jwcid="@Option" label="ognl:requester.display" selected="ognl:
searchCriteria.requester" />
 </span>
</select>
</td>
<td><input jwcid="[EMAIL PROTECTED]" value="ognl:searchCriteria.year" name="
searchCriteria.year" maxlength="4" tstyle="width:40px;" /></td>
<td><input jwcid="[EMAIL PROTECTED]" value="ognl:searchCriteria.number"
name="searchCriteria.number" maxlength="5" style="width:50px;" /></td>
<td><input jwcid="[EMAIL PROTECTED]" value="ognl:searchCriteria.version"
name="searchCriteria.version" maxlength="2"style="width:35px;" /></td>
<td><input jwcid="[EMAIL PROTECTED]" value="ognl:searchCriteria.part" name="
searchCriteria.part" maxlength="2"style="width:35px;" /></td>
<td>
 <select jwcid="[EMAIL PROTECTED]" name="searchCriteria.language" size="1"
tabindex="6" class="comboBox9pt">
   <span jwcid="@Foreach" source="ognl:languages" value="ognl:language">
     <option jwcid="@Option" label="ognl:searchCriteria.language.label"
selected="ognl:searchCriteria.language" />
   </span>
 </select>
</td>


Why do I need to create an object to store the current value? I want to
store the current value in searchCriteria.requester/searchCriteria.language.

If I replace

<span jwcid="@Foreach" source="ognl:requesters" value="ognl:requester">
   <option jwcid="@Option" label="ognl:requester.display" selected="ognl:
searchCriteria.requester" />
 </span>

by

<span jwcid="@Foreach" source="ognl:requesters"
value="ognl:searchCriteriaRequester">
  <option jwcid="@Option" label="ognl:searchCriteria.requester.display"
selected="ognl:searchCriteria.requester" />
</span>

I don't have the error but the searchCriteria.requester is null when I
submit!! What is the best way to use this @Select @Option component?

Home.java

/** The AppSettings */
public abstract ApplicationSettings getAppSettings();
public abstract void setAppSettings(ApplicationSettings appSettings);

/** The search criterias */
public abstract SearchCriteria getSearchCriteria();
public abstract void setSearchCriteria(SearchCriteria searchCriteria);

/** List of the requesters */
public abstract List getRequesters();
public abstract void setRequesters(List requesters);

/** List of the languages */
public abstract List getLanguages();
public abstract void setLanguages(List languages);

/**
 * Initialized appSettings at the loading process, beginning of the render
 [EMAIL PROTECTED] event The Tapestry loading page event
 */
public void pageBeginRender(PageEvent event) {
 ApplicationSettings appSettings = getAppSettings();
 setRequesters(appSettings.getRequesters());
 setLanguages(appSettings.getLanguages());
 SearchCriteria searchCriteria = getSearchCriteria();
 if (searchCriteria == null) {
   searchCriteria = new SearchCriteria();
   searchCriteria.setRequester((Requester)getRequesters().get(0));
   searchCriteria.setYear("2006");
   searchCriteria.setNumber("00001");
   searchCriteria.setVersion("**");
   searchCriteria.setPart("**");
   searchCriteria.setLanguage((Language)getLanguages().get(0));
 }
 setSearchCriteria(searchCriteria);
}

SearchCriteria.java

 private Requester requester = null;
 public Requester getRequester() { return requester; }
 public void setRequester(Requester requester) { this.requester =
requester; }

 private String year = null;
 public String getYear() { return year; }
 public void setYear(String year) { this.year = year; }

 private String number = null;
 public String getNumber() { return number; }
 public void setNumber(String number) { this.number = number; }

 private String version = null;
 public String getVersion() { return version; }
 public void setVersion(String version) { this.version = version; }

 private String part = null;
 public String getPart() { return part; }
 public void setPart(String part) { this.part = part; }

 private Language language = null;
 public Language getLanguage() { return language; }
 public void setLanguage(Language language) { this.language = language; }

Reply via email to