hezjing wrote:
Hi
I have a form with multiple buttons,
<s:form namespace="/user" action="updateUser" method="post">
<s:submit name="action" value="resetPassword" key="button.resetPassword" />
<s:submit name="action" value="delete" key="button.delete" />
</s:form>
and my action class looks like the following,
public String execute() throws Exception {
if (action.equals("resetPassword")) {
userService.resetPassword(user);
} else if (action.equals("delete")) {
userService.delete(user);
}
return SUCCESS;
}
This action is working, except that the label/text of the buttons are
not fetched from the i18n properties file.
The buttons are displayed as "resetPassword" and "delete".
I don't see why the I18N isn't working. That's probably just a minor
configuration problem.
What is the good way to implement a form with multiple buttons, while
maintaining the i18n?
Several options:
on s:submit, include a method="" attribute to call a method other than
execute
<s:submit name="action" value="resetPassword" key="button.resetPassword"
method="reset"/>
<s:submit name="action" value="delete" key="button.delete" method="delete />
public String reset() throws Exception {
userService.resetPassword(user);
return SUCCESS;
}
public String delete() throws Exception {
userService.delete(user);
return SUCCESS;
}
---
Or split it into two actions:
<s:submit name="action" value="resetPassword" key="button.resetPassword"
action="resetPassword"/>
<s:submit name="action" value="delete" key="button.delete" action="deleteUser/>
---
Or use a wildcard in the action
<s:submit name="action" value="resetPassword" key="button.resetPassword"
action="updateUserReset"/>
<s:submit name="action" value="delete" key="button.delete"
action="updateUserDelete/>
<action name="updateUser*" method="{1}" class="...">
---
I prefer the latter approach because it works best with XML validation and the
ajax tags.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]