Hola!
@Xerelo: Eliminar el method no cambia nada... Entra al execute pero con los parametros del form a null. Lo que hay copiado solo es el body de las tiles.
@DonVidela: lo mismo, no funciona...
@hualro: Mi struts.xml es:
Código PHP:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation"
value="false" />
<constant name="struts.devMode" value="false" />
<constant name="struts.custom.i18n.resources"
value="ApplicationResources" />
<package name="default" extends="struts-default" namespace="/">
<result-types>
<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
</result-types>
<interceptors>
<interceptor name="logger" class="actions.AuthenticationInterceptor"/>
</interceptors>
<action name="login"
class="actions.LoginAction" method="execute">
<result name="success" type="tiles">/welcome.tiles</result>
<result name="admin" type="tiles">/admin.tiles</result>
<result name="input">Login.jsp</result>
<result name="error">Login.jsp</result>
</action>
<action name = "logout" class="actions.LogoutAction">
<result name="success" type="redirect">Login.jsp</result>
</action>
<action name="modifyUser" class="actions.ModifyUserAction">
<interceptor-ref name="logger"/>
<result name ="nologin" type="redirect">Login.jsp</result>
<result name="success" type="tiles">/confiAlarms.tiles</result>
</action>
</package>
</struts>
He borrado algunas actions que no viene al caso.
M interceptor logger lo que haces es comprobar si hay una session abierta:
Código PHP:
public class AuthenticationInterceptor extends ActionSupport implements Interceptor {
@Override
public String intercept(ActionInvocation arg0) throws Exception {
// TODO Auto-generated method stub
Map session = arg0.getInvocationContext().getSession();
if (session.get("username") == null) {
addActionError(getText("error.nologin"));
return "nologin";
} else {
return arg0.invoke();
}
}
}
El tiles result funciona en todos los actions bien. El problema es sque mis campos del formulario, llegan como null a ModifyUserAction. java.
Muchisimas gracias!. Un saludo