Thread View: pl.comp.lang.java
2 messages
2 total messages
Started by Cezar ikari Pokorski
Mon, 05 Nov 2012 11:14
Stripes framework, ValidationErrors
Author: Cezar ikari Pokorski
Date: Mon, 05 Nov 2012 11:14
Date: Mon, 05 Nov 2012 11:14
36 lines
2050 bytes
2050 bytes
Hej,
Mam nadzieję, że używaliście kiedyś Stripesów. Mam bardzo prosty use case,
który działał, a po 2 dniach przestał. Jest sobie serwis, ma standardową
autoryzację obsługiwaną po stronie serwera (j_security_check czy jak jej
tam było), gdy autoryzacja się nie udaje, lądujemy w handlerze:
public class LoginFailedActionBean extends LoginActionBean {
@DefaultHandler
public Resolution view() {
ValidationErrors validationErrors =
this.getContext().getValidationErrors();
ActionBeanContext context = this.getContext();
validationErrors.add(
"j_password",
new LocalizableError("error.invalid_login")
);
context.setValidationErrors(validationErrors);
return new ForwardResolution("/WEB-INF/jsp/login.jsp");
}
}
Pytanie jest bardzo proste: co tu może nie działać? Błąd walidacji dodaje
się do kontektu, następnie login.jsp używa tagu <stripes:errors /> (w tej
właśnie postaci) do wyświetlenia błędu(ów). Co najmniej raz przed commitem
widziałem, że to działa. Teraz jednak JSP wydaje się nie widzieć błędów
walidacji, <stripes:errors /> nie generuje żadnego wyjścia.
Halp!
--
Nie mam weny na sygnaturkę
Re: Stripes framework, ValidationErrors
Author: Cezar ikari Pokorski
Date: Mon, 05 Nov 2012 14:50
Date: Mon, 05 Nov 2012 14:50
37 lines
2189 bytes
2189 bytes
W dniu 05.11.2012 o 12:14 Cezar ikari Pokorski <kontakt@ikari.pl> pisze:
> (...) Mam bardzo prosty use case, który działał, a po 2 dniach przestał.
> (...)
>
>
> (...)
> context.setValidationErrors(validationErrors);
> return new ForwardResolution("/WEB-INF/jsp/login.jsp");
> (...)
>
> (...) <stripes:errors /> nie generuje żadnego wyjścia.
>
> Halp!
>
Odpowiem sam sobie, ot, gdyby ktoś znalazł wątek bez odpowiedzi szukając
podobnego problemu. Otóż, ponieważ <stripes:errors /> było kiedyś tak po
prostu, a później pojawiło się wewnątrz tagu <stripes:form>, to zmienił mu
się kontekst, w którym szukał błędów walidacji. Tag ten umieszczony w
<stripes:form> szuka błędów "powiązanych z formularzem", nie sięga już do
ogólniejszego kontekstu.
Docs:
"This tag has several ways of being attached to the errors of a specific
action request. If the tag is inside a form tag, it will display only
errors that are associated with that form. If supplied with an 'action'
attribute, it will display errors only errors associated with a request to
that URL. Finally, if neither is the case, it will display errors
associated with the action bean for the current request."
I o to się rozeszło - nie doszedł do szukania błędów w requeście.
--
Nie mam weny na sygnaturkę
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads