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

Reply via email to