I have been using the actionErrors and actionMessage features of Struts2 for
some time and they have worked well for providing user feedback, (e.g.;
"Business Center deleted successfully", "User already exists with this ID",
etc.). I add the error or the message in the action class like so:
public String add() throws Exception {
try {
service.addUser(user);
users = service.getAllUsers();
} catch(PersistenceExistsException ee) {
addActionError(getText("user.alreadyExists"));
return Action.INPUT;
} catch(PersistenceNotFoundException nfe) {
this.addActionError(getText("global.unableToProcessRequest"));
return Action.INPUT;
}
addActionMessage(getText("user.addSuccess"));
return SUCCESS;
}
This had the effect of deleting a user, refreshing the list of all users,
and sending a success message if all went well.
If something went wrong, a descriptive error would be displayed just above
the list of users.
It worked well until I began to incorporate the AJAX tags into the mix. I
use a s:div to display the list of users:
<tr>
<td colspan="2">
<s:div id="users" theme="ajax" href="userAdmin.do"
listenTopics="delete"
>loading...</s:div>
</td>
</tr>
The JSP fragment that is returned to this div contains the list of users.
This also worked well. But the JSP also contains the actionError and
actionMessage tags:
<tr>
<td colspan="4" class="PageStatus">
<font color="#FF0000"><s:actionerror/></font>
</td>
</tr>
<tr>
<td colspan="4" class="PageStatus">
<font color="#00FF00"><s:actionmessage/></font>
</td>
</tr>
The problem is that these tags are never populated while using the AJAX
feature. Neither errors nor messages are displayed at any time. If I use
the same url that the s:div tag uses, and key it into the browser address,
the row is added or deleted and the message displays correctly, (using the
exact same jsp). When I use an ajax link:
<s:url id="removeUrl" action="removeUser">
<s:param name="userId" value="userId" />
</s:url>
<s:a href="%{removeUrl}" theme="ajax" notifyTopics="delete" ><s:text
name="global.delete"/></s:a>
the correct user is deleted, the div is refreshed with the new list of
users, but no message displays.
Are the message tags handled differently when using AJAX?
--
View this message in context:
http://www.nabble.com/Mixing-Struts2-ajax-functions-with-actionErrors-and-actionMessages-tf3222408.html#a8950048
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]