draegoon Z wrote:
Sounds great so far, but I think I lost you on the first part.
Let's work through a simple problem...
Let's say I have in my struts-config:
<action path="/my_action" forward="tile.my_action" />
<action path="/success" forward="tile.success" />
<action path="/error" forward="tile.error" />
<action name="MyForm" path="/process_my_action" input="/my_action.do"
scope="request" type="com.draegoonZ.action.MyAction">
<forward name="success" path="/success.do" />
<forward name="error" path="/error.do" />
</action>
First, what happens if MyForm just simply returns an ActionError?
MyForm, which I assume extends from Action, would have to return an
ActionForward, or null... if null, then the response would have to be
fully formed by the Action, otherwise it presumably returns a forward to
a JSP that renders some response. That JSP would have to make use of
the ActionErrors, and render a response appropriate for what you want to
happen on the client, whether that's updating a <div>, popping an
alert(), or something else.
I feel like I'm not understanding what your getting at though :)
Second, what if MyAction has ActionErrors and forwards to its 'error' page?
Same basic answer as above... you wouldn't, in all probability, reuse
the same JSP as rendered the form, as is typical in Struts apps. In
this case, you would probably be submitting to some mapping that is
expressly set up to handle the AJAX request. That means that the input
attribute would make to some JSP that renders the response appropriate
for the error condition (the same basic mechanism as described above).
Are you saying that APT gets the response (JSP,text,HTML, whatever) and
matches
the regex to that entire response string?
That's correct, it executes the regex against responseText of
XMLHttpRequest.
If so, how do you advise setting flags in the response to ensure the
proper responseHandler
is called without neccessarily displaying the flag itself. Like,
THIS_IS_MY_UGLY_FLAG_BEFORE_CONTENT_AND_FIRST_IN_THE_RESPONSE:<p>content</p>
I think more than likely you would key off of some text in a real
response... i.e., if the error message is something like "To field
cannot be blank", then check for something like "/cannot be blank/". If
you wanted to do something like you show above, you probably would need
to write a custom handler because there would be no opportunity to
essentially strip the flag from the response... the post-processing
function does not fire until AFTER all the response handlers have fired.
I think you've found a good enhancement opportunity :)
Another possibility is to return Javascrpt... APT will always execute
any <script> blocks it finds in the response. There is also a standard
CodeExecuter response handler that assumes the response is Javascript
and executes it even without the <script> block. This would allow you
to do whatever you wanted upon return, i.e., flag error fields, whatever.
-Joe
Frank
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]