struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Siddiq Syed <siddiq...@yahoo.com>
Subject Re: Preserving Messages and Garbage values Across a Redirect in Struts 2
Date Fri, 30 Oct 2009 21:15:21 GMT

First off all Thank you so much Greg, You have been doing a great job!. And
you express things pretty clear, Which I may not.
Please bare with me for some more time.

When I am doing a chain in the input, as show below 

 <action name="saveInitConsiderationEval"
class="com.activity.EvaluateCaseAction" method="saveInitConsiderationEval">
        	<interceptor-ref name="redirectInput"/>
        	<result name="success" type="redirect-action">
        		determineCaseEvaluationType
        	</result>
        	<result name="input" type="chain">
	determineCaseEvaluationTypeForInput
	</result>
        </action>

The action "determineCaseEvaluationTypeForInput" is again looking for the
input, in which case there is no input.

 <action name="determineCaseEvaluationTypeForInput"
class="com.activity.EvaluateCaseAction"  
method="determineCaseEvaluationTypeForInput">
        	<result name="guidelInitConsid"
type="tiles">editGuidelinesCaseEvaluation</result>
        	<result name="shrtsntcInitConsid"
type="tiles">editShortSentenceCaseEvaluation</result>
        	<result name="sscat2p1InitConsid"
type="tiles">editShortSentenceCaseEvaluation</result>
        	<result name="sscat2p2InitConsid"
type="tiles">editShortSentenceCaseEvaluation</result>
</action>

<action name="determineCaseEvaluationType"
class="com.activity.EvaluateCaseAction"
method="determineCaseEvaluationType">
        	<result name="guidelInitConsid"
type="tiles">editGuidelinesCaseEvaluation</result>
        	<result name="shrtsntcInitConsid"
type="tiles">editShortSentenceCaseEvaluation</result>
        	<result name="sscat2p1InitConsid"
type="tiles">editShortSentenceCaseEvaluation</result>
        	<result name="sscat2p2InitConsid"
type="tiles">editShortSentenceCaseEvaluation</result>

</action>
---- The question is pretty simple and in a simple view.

I am displaying the JSP depend on the some string that action returns, When
validation happens(fails) I want to display the same jsp with the validation
message and the values.

I hope you got my last sentece. I got an alternate for this by setting the
request value in the getter and setter method of the view bean which is a
bad approach , I know !! -:(


Thanks
Siddiq.

Greg Lindholm-2 wrote:
> 
> 1) Your interceptor stack is fine.
> 
> 2) Dale was simply pointing out a very common newbie mistake; when you
> specify an interceptor-ref in an action it will replace (not append) the
> interceptor stack. Since you hadn't shown what redirectInput was it was a
> possible source of error.  Now you have shown it, we can see it is OK.
> (see
> #1)
> 
> 3) Result type of Chain is still probably the answer for you.  You say it
> didn't work but don't describe what that means and what exactly you tried.
> (see note below)
> 
> 4) You should not need to iterate over
> #session.RedirectMessageInterceptor_FieldErrors to get the errors from the
> RedirectMessageInterceptor.  This is not the way it is meant to be used,
> it's suppose to handle the messages automatically, that's the whole point
> of
> it.
> 
> In order for RedirectMessageInterceptor to work properly you need to
> always
> include it in your interceptor stack on both the actions that generate the
> messages and on the actions that get redirected to.  This is explained in
> the doc and comments for RedirectMessageInterceptor.
> 
> Note that the action that you redirect to, following a validation error,
> will always use the 'input' result since the presents of the error
> messages
> will cause the workflow interceptor to return a result of 'input'.  You
> might want to read this over a couple times to make sure you get it. The
> action you redirect to will return a result of 'input' because the
> workflow
> interceptor sees that there are errors. (Maybe this is why you though
> chain
> wasn't working).
> 
> You seem to have such an unusual configuration that you may have to
> develop
> your own solutions since the standard ones don't seem to work for you.  As
> I
> explained earlier, doing a redirect following a validation error is almost
> always the wrong thing to do and the standard approach is to dispatch back
> to the input page.
> 
> 
> On Fri, Oct 30, 2009 at 1:57 PM, Siddiq Syed <siddiq_sa@yahoo.com> wrote:
> 
>>
>> The interceptor mention is nothing but
>> RedirectMessageInterceptor(
>> http://glindholm.wordpress.com/category/struts-2/)
>> and I specified that in the strust.xml,
>> This interceptor is to preserve the error messages.
>>
>> <interceptors>
>> <interceptor name="redirectMessage"
>> class="com.interceptor.RedirectMessageInterceptor" />
>>                        <interceptor-stack name="redirectInput">
>>                                <interceptor-ref name="redirectMessage" />
>>                                <interceptor-ref
>> name="paramsPrepareParamsStack" />
>>                        </interceptor-stack>
>>                </interceptors>
>> I am iterating the session in the JSP and displaying the error messages..
>>
>> <s:if test="#session.RedirectMessageInterceptor_FieldErrors != null">
>> <ul>
>>  <s:iterator value="#session.RedirectMessageInterceptor_FieldErrors" >
>>        <s:iterator id="id" value="value" >
>>        <li><s:property value="id" /></li>
>>  </s:iterator>
>> </s:iterator>
>> </ul>
>> <%
>>        session.removeAttribute("RedirectMessageInterceptor_FieldErrors");
>> %>
>> </s:if>
>>
>> As I said my first attempt was to use Chain , but It was not working.
>> And I don't understand what Dale is saying , can you elaborate please.
>>
>> Dale -- you mean to say chain and interceptor doesnot go together. !! -:(
>>
>>
>> Thanks
>> Siddiq.
>>
>>
>> DNewfield wrote:
>> >
>> > Greg Lindholm wrote:
>> >> The only other thing is your interceptor stack 'redirectInput' you
>> >> haven't
>> >> shown what it is.
>> >
>> > And note--specifying any interceptor(s) in the action causes the
>> > specified interceptor(s) to be the only ones used.
>> >
>> > -Dale
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> > For additional commands, e-mail: user-help@struts.apache.org
>> >
>> >
>> >
>>
>> --
>> View this message in context:
>> http://old.nabble.com/Preserving-Messages-and-Garbage-values-Across-a-Redirect-in-Struts-2-tp26114968p26134455.html
>> Sent from the Struts - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>>
> 
> 

-- 
View this message in context: http://old.nabble.com/Preserving-Messages-and-Garbage-values-Across-a-Redirect-in-Struts-2-tp26114968p26136963.html
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message