*sigh*
I confused the s:form method attribute and used it to specify the method to
call on the action, not the HTTP form submit method. Everything's working
now. Definitely not my brightest moment.
Thanks a bunch,
GB
Laurie Harper wrote:
>
> Guillaume Bilodeau wrote:
>> Hi guys,
>>
>> I'm using Struts 2.0.11 for a standard web application and using
>> annotations
>> all the way. I have the following action, with some fields and getters /
>> setters omitted for brevity:
>>
>> @ParentPackage("default")
>> @Results( {
>> @Result(name = "input", type = ServletDispatcherResult.class,
>> value =
>> "/views/users/changePassword.jsp"),
>> @Result(type = ServletActionRedirectResult.class, value =
>> "workbench",
>> params = {
>> "namespace", "/workbench", "parse", "true",
>> "actionMessageKey",
>> "${actionMessageKey}" }) })
>> @Validation
>> public class ChangePasswordAction extends ActionSupport {
>> @Override
>> @Validations(requiredStrings = {
>> @RequiredStringValidator(fieldName = "currentPassword",
>> message = "",
>> key
>> = "users.changePassword.currentPassword.invalid"),
>> @RequiredStringValidator(fieldName = "newPassword1",
>> message = "", key
>> =
>> "users.changePassword.newPassword.invalid"),
>> @RequiredStringValidator(fieldName = "newPassword2",
>> message = "", key
>> =
>> "users.changePassword.newPassword.invalid") }, expressions = {
>> @ExpressionValidator(expression = "newPassword1.equals(newPassword2)",
>> message = "", key = "users.changePassword.mismatch") })
>> public String execute() {
>> String result = Action.INPUT;
>>
>> try {
>> userService.changeUserPassword(getUser().getId(),
>> currentPassword,
>> newPassword1);
>> result = Action.SUCCESS;
>> }
>> catch (InvalidPasswordException e) {
>>
>> addActionError(getText("users.changePassword.currentPassword.invalid"));
>> }
>>
>> return result;
>> }
>> }
>>
>> The accompanying JSP, changePassword.jsp, contains a simple form with 3
>> fields (current, new, confirm new password) and a submit button.
>>
>> When leaving all form fields and submitting the form, the validation
>> interceptor correctly executes, correctly identifies all validation
>> errors
>> and correctly executes the input result. The rendered page correctly
>> shows
>> the correct form with all expected error messages next to the
>> corresponding
>> fields. Basically, the whole request handling works as expected.
>> However,
>> the browser's address bar now shows the following:
>>
>> http://localhost:8080/healthcheck/users/changePassword.go?currentPassword=&newPassword1=&newPassword2=&general.submit=Submit
>>
>> The URL contains all failed parameters with their values in clear text,
>> which is something I don't want. The behavior is the same when using an
>> empty result type for the input result.
>>
>> 1. Is there a way not to see these parameters in the final URL?
>> 2. I don't see why these parameters need to be added to the URL when they
>> are clearly accessible to the JSP using the value stack. Surely there
>> must
>> be a good reason to this?
>
>
> That's basic HTML/HTTP. You need to change your form to submit using the
> POST method instead of GET. See the 'method' attribute of s:form.
>
> L.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
--
View this message in context:
http://www.nabble.com/Validation-result-URL-contains-failed-parameters-tp16624608p16633323.html
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]