Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Struts 2.0中登录时使用的拦截器_Java_Jsp_Validation_Struts2_Interceptor - Fatal编程技术网

Java Struts 2.0中登录时使用的拦截器

Java Struts 2.0中登录时使用的拦截器,java,jsp,validation,struts2,interceptor,Java,Jsp,Validation,Struts2,Interceptor,我正在设计一个基本的应用程序,其中用户提供他的用户id和密码,如果登录成功,他将被重定向到主页。现在,对于验证,如果用户id和密码不是空的,我想使用拦截器。但我无法找到如何访问拦截器中请求参数的值。 JSP代码 <s:form action="Login.action" method="post"> <s:textfield label="Username" name="bean.userId"/> <s:submit value="Lo

我正在设计一个基本的应用程序,其中用户提供他的用户id和密码,如果登录成功,他将被重定向到主页。现在,对于验证,如果用户id和密码不是空的,我想使用拦截器。但我无法找到如何访问拦截器中请求参数的值。 JSP代码

<s:form action="Login.action" method="post">
       <s:textfield label="Username" name="bean.userId"/>
       <s:submit value="Login" />
</s:form>
看法

拦截器

public class LoggingInterceptor implements Interceptor
{
public void destroy() 
{
    System.out.println("Destorying......");
}

public void init() {
    System.out.println("Initializing......");

}

public String intercept(ActionInvocation actionInvocation) throws Exception 
{
    ActionConfig config  = actionInvocation.getProxy().getConfig();  
    Map parameters       = config.getParams();  
    String menuId        = (String)parameters.get("userId");
    System.out.println("Got it:"+menuId);
            return actionInvocation.invoke();
}

}

此代码应提供servlet请求中的参数。假设参数只有一个值

public String intercept(ActionInvocation actionInvocation) throws Exception 
{
    Map<String, String[]> parameters = ServletActionContext.getRequest().getParameterMap();  
    String userId  = parameters.get("bean.userId")[0];
    System.out.println("Got it:"+userId);
    return actionInvocation.invoke();
}
publicstringintercept(ActionInvocation-ActionInvocation)引发异常
{
映射参数=ServletActionContext.getRequest().getParameterMap();
字符串userId=parameters.get(“bean.userId”)[0];
System.out.println(“得到它:+userId”);
返回actionInvocation.invoke();
}

您是否编写了拦截器?显示代码。@RomanC:我已经编辑了这个问题,现在请检查它是否有效!!!!!!Thanx@RomanC:D有很多。但有一件事我还是无法得到,我尝试了这种方法来获取Map中的所有参数,但我调用了ActionInvocation对象,得到了userId的值,但它们不是可读的形式,我甚至尝试使用toString()方法。这个东西是如何使用ServletActionContext工作的?它使用servlet请求,使用直接ServletAPI获取其参数。ServletActionContext是一个助手类,它使用静态方法访问拦截器中的servlet人员。
public class LoggingInterceptor implements Interceptor
{
public void destroy() 
{
    System.out.println("Destorying......");
}

public void init() {
    System.out.println("Initializing......");

}

public String intercept(ActionInvocation actionInvocation) throws Exception 
{
    ActionConfig config  = actionInvocation.getProxy().getConfig();  
    Map parameters       = config.getParams();  
    String menuId        = (String)parameters.get("userId");
    System.out.println("Got it:"+menuId);
            return actionInvocation.invoke();
}
public String intercept(ActionInvocation actionInvocation) throws Exception 
{
    Map<String, String[]> parameters = ServletActionContext.getRequest().getParameterMap();  
    String userId  = parameters.get("bean.userId")[0];
    System.out.println("Got it:"+userId);
    return actionInvocation.invoke();
}