[ anon156554 @ 13.07.2009. 11:33 ] @
Razvijam struts2 aplikaciju, i imam problem pri validaciji. Koristim validation framework, i konstantno mi u stack trace-u javlja da ne postoji validation dokument. Pratio sam konvenciju da se dokument nazove kao akcija, ako je akcija MyAction dokument je MyAction-validation.xml i nalazi se u istom package-u kao i klasa. Ne znam u cemu moze biti problem. Razvijam pod ubuntuom 8.10, Netbeans 6.5.1 IDE.
[ anon156554 @ 06.11.2009. 11:15 ] @
dobro, taj problem sam resio. Da li je neko imao problem sa redirectAction tipom rezultata? Nesto sam guglao, i video da izgleda postoje bagovi u struts2 sto se tice te vrste rezultata. Konkretno, prosledjujem neki parametar akciji koja je navedena ovim tipom rezultata, ali struts prijavljuje da parametar pod tim imenom ne postoji. A postoji, takodje i getter i setter. Ne'am pojma sta je u pitanju.
[ IDE @ 07.11.2009. 08:44 ] @
copy/paste dio struts.xml-a i klase koja ima gettere i settere koji prave probleme i opisi sta tacno zelis da dobijes...

Ovako ti tesko ko moze dati odgovor na pitanje "zasto mi ne radi slanje parametra?"

Moze biti dosta toga...
[ anon156554 @ 07.11.2009. 08:57 ] @
<action name="PosaljiKomentar" class="akcije.PosaljiKomentarACT">
<interceptor-ref name="def_spring_logged" />
<result name="success" type="redirectAction">
<param name="actionName">PrikazVest</param>
<param name="namespace">/opsti</param>
<param name="idVesti">${#session.idVestiUSesiji}</param>
</result>
<result name="input" type="redirectAction">
<param name="actionName">PrikazVest</param>
<param name="namespace">/opsti</param>
<param name="idVesti">${#session.idVestiUSesiji}</param>
</result>
<result name="login">/nonSecureJSPS/LoginPage.jsp</result><!-- <- ako je otvorena stranica sa formom za slanje komentara
a korisnicka sesija je u medjuvremenu istekla-->
</action>

......

<action name="PrikazVest" class="akcije.PrikazVestACT">
<result>/WEB-INF/jsp/PrikaziVest.jsp</result>
</action>

......


package akcije;
public class PrikazVestACT extends ActionSupport implements RequestAware, SessionAware {
private Integer idVesti;
private Vest trazenaVest;
private List najnovijeVesti;
private List listaSlicnihVesti;
private Map request;
private Map<String, Object> session;

public List getListaSlicnihVesti() {
return listaSlicnihVesti;
}

public void setListaSlicnihVesti(List listaSlicnihVesti) {
this.listaSlicnihVesti = listaSlicnihVesti;
}

public List getNajnovijeVesti() {
return najnovijeVesti;
}

public void setNajnovijeVesti(List najnovijeVesti) {
this.najnovijeVesti = najnovijeVesti;
}

public Vest getTrazenaVest() {
return trazenaVest;
}

public void setTrazenaVest(Vest trazenaVest) {
this.trazenaVest = trazenaVest;
}

public Integer getIdVesti() {
return idVesti;
}

public void setIdVesti(Integer idVesti) {
this.idVesti = idVesti;
}
BusinessLogicInt blFacade;

public BusinessLogicInt getBlFacade() {
return blFacade;
}

public void setBlFacade(BusinessLogicInt blFacade) {
this.blFacade = blFacade;
}

public PrikazVestACT() {
}

@Override
public String execute() throws Exception {
String result = SUCCESS;
try {
Vest vest = blFacade.vratiTrazenuVest(idVesti);
setTrazenaVest(vest);
setListaSlicnihVesti(blFacade.vratiVestiPoIstojKljucnojReci(vest));
setNajnovijeVesti(blFacade.vratiNajnovijeVesti());
getSession().put("idVestiUSesiji", vest.getIdVesti());
} catch (Exception e) {
request.put("error", e);
result = "failure";
}
return result;
}

public void setRequest(Map request) {
this.request = request;
}

/**
* @return the session
*/
public Map<String, Object> getSession() {
return session;
}

/**
* @param session the session to set
*/
public void setSession(Map<String, Object> session) {
this.session = session;
}
}
[ DeYo @ 04.12.2009. 13:31 ] @
Deluje mi da bi ti paramsPrepareParamsStack interceptor stack resio problem.
Vise o svim predefinisanim interceptor stackovima: http://struts.apache.org/2.x/docs/interceptors.html

Evo, i primer kako meni to funkcionise u jednoj aplikaciji:

Akcija:
Code:

public class MyAction extends ActionSupport {...


config
Code:

<struts>
    <package name="myPackage" namespace="/my" extends="...">    
    
        <interceptors>
            <interceptor-stack name="myStack">
                <interceptor-ref name="paramsPrepareParamsStack" >
                        ...
                </interceptor-ref>
            </interceptor-stack>            
        </interceptors>

        <action name="myAction" class="com.....MyAction">
                ...
        </action>




[Ovu poruku je menjao DeYo dana 04.12.2009. u 14:43 GMT+1]

[Ovu poruku je menjao DeYo dana 04.12.2009. u 14:43 GMT+1]