You could try keeping them in the session, but that might involve tricky configuration sometimes--not sure. You're rendering a single control; I don't see that you're saving much... I still believe Preparable is a cleaner choice.
You might be able to configure the action in such a way that the actionErrors property is filled off the value stack, but ew. Dave On Thursday, October 28, 2010, Alfredo Manuel Osorio Martinez <alfredo.oso...@afirme.com> wrote: > Hello Dave and thank you for your quick response, > > 1. Let's say I want to keep doing the rendering of the control in that way. > How would I solve the problem with the action error messages? > 2. What I liked about having an action for rendering the controls it's that I > can reuse them across different JSP pages. What other alternatives do you > suggest me that can achieve the same level of modularity? > > > Alfredo Osorio > > -----Mensaje original----- > De: Dave Newton [mailto:davelnew...@gmail.com] > Enviado el: Thursday, October 28, 2010 12:51 PM > Para: Struts Users Mailing List > Asunto: Re: Struts 2 s:action tag doesn't render action errors if any are > present > > Rendering a control (and repopulating its values) is a different thing > than displaying validation error messages. > > IMO the way you're doing it isn't a particularly good idea; it would > be better to render the control on the page, *possibly* using s:action > to create the list of possible values (which I also really don't > like), but not to render the control. Note that the text on that page > states only that the control will be populated and rendered, which is > true. > > I'm opposed to using the s:action tag as a solution to this problem in > general; I don't think it's a good idea, and introduces more issues > than it solves, particularly since better alternatives exist. > > Dave > > On Thu, Oct 28, 2010 at 1:35 PM, Alfredo Manuel Osorio Martinez > <alfredo.oso...@afirme.com> wrote: >> For example I have the following: >> >> struts.xml: >> >> <action name="personForm"> >> >> <result>/jsp/personForm.jsp</result> >> >> </action> >> >> <action name="savePerson"> >> >> <result>/jsp/successSave.jsp</result> >> >> <result name="input">/jsp/personForm.jsp</result> >> >> </action> >> >> <action name="countries"> >> >> <result>/jsp/countries.jsp</result> >> >> </action> >> >> personForm.jsp: >> >> <%@ taglib prefix="s" uri="/struts-tags" %> >> >> <s:form action="savePerson"> >> >> <s:textfield name="firstName" label="First Name" /> >> >> <s:textfield name="lastName" label="Last Name" /> >> >> <s:action name="countries" executeResult="true" /> >> >> <s:submit /> >> >> </s:form> >> >> CountriesAction.java: >> >> public class CountriesAction extends ActionSupport { >> >> public String execute() { >> >> countries = getCountries(); >> >> return SUCCESS; >> >> } >> >> >> >> private Map<String, String> getCountries() { >> >> ... >> >> } >> >> >> >> private Map<String, String> countries; >> >> } >> >> countries.jsp: >> >> <%@ taglib prefix="s" uri="/struts-tags" %> >> >> <s:select name="countryId" label="Countries" list="countries" >> >> headerKey="-1" headerValue="Please select the country ..."/> >> >> SavePerson.action >> >> public class SavePerson extends ActionSupport { >> >> >> >> public void validate() { >> >> if (firstName == "") { >> >> addFieldError(firstName, "First Name is required."); >> >> } >> >> >> >> if (lastName == "") { >> >> addFieldError(lastName, "Last Name is required."); >> >> } >> >> >> >> if (countryId == "-1") { >> >> addFieldError(countryId, "Country is required."); >> >> } >> >> >> >> } >> >> >> >> public String execute() { >> >> //get the properties and save the person... >> >> return SUCCESS; >> >> } >> >> >> >> private String firstName; >> >> private String lastName; >> >> private String countryId; >> >> >> > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org