🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#153632
Author: Cezar ikari Pokorski
Date: Mon, 05 Nov 2012 11:14
36 lines
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
#153633
Author: Cezar ikari Pokorski
Date: Mon, 05 Nov 2012 14:50
37 lines
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