Hello,

What is generally regarded as the best practise for populating a select
element in a form from database so that it works regardless of the action
and the result from which the form is displayed?

I've tried this:

action configuration:
<action name="edit" method="edit" class="admin.Users">
  <result>/WEB-INF/jsp/admin/userForm.jsp</result>
</action>
<action name="save" method="save" class="admin.Users">
  <result type="redirect-action">
    <param name="actionName">list</param>
  </result>
  <result name="input">/WEB-INF/jsp/admin/userForm.jsp</result>
</action>


jsp page:
<s:form action="save">
<s:action name="listIntoRequest" />
<s:select list="#request.list" />
...
</s:form>

where listIntoRequest looks like this:

public String listIntoRequest() {
   List<Item> list=dao.getListFromDatabase();
   request.setAttribute("list", list);
   return SUCCESS;
}

but the problem is with validation. If the validation fails, and the input
result is returned in the in the form processing page (save), then the
action tag never executes the method listIntoRequest (see WW-2599), and the
form will not display correctly.

Reply via email to