无法使用表达式语言为Struts2表单验证获取正确的代码

时间:2016-07-14 13:33:37

标签: jsp struts2 el

我想使用表达式语言进行struts2表单验证。 我试过但是EL没有显示任何消息。

以下是 login.jsp 的代码:

<s:form action="login" method="post">
    ${requestScope.invid}
    <s:textfield name="user" label="Username"/>
    ${requestScope.invpass}
    <s:password name="pass" label="Password" />
    <s:submit value="Log In" />
</s:form>

以下是 loginaction.java 的代码:

public class LoginAction extends ActionSupport
{
private String user,pass;
HttpServletRequest request;

//setters and getters
public String execute()
{
    try
    {
        Session s=HibernateUtil.getSessionFactory().openSession();
        Hfslogin l2=(Hfslogin)s.get(Hfslogin.class,user);
        if(l2!=null)
        {
            if(l2.getPass().equals(pass))
            {
                return SUCCESS;
            }
            else
            {
                request.setAttribute("invpass","Password does not     match for this ID");
                return "relogin";
            }
        }
        else
        {
            request.setAttribute("invid","ID not registered");
            return "relogin";
        }
    }
    catch(Exception e)
    {
        e.printStackTrace();
        return "relogin";
    }
}
}

这是我的 struts.xml 代码:

<action name="login" class="com.signin.LoginAction">
        <result name="relogin">login.jsp</result>
        <result name="success">Welcome.jsp</result>
</action>

1 个答案:

答案 0 :(得分:1)

我在重新检查时得到了答案。 我没有实现ServletRequestAware接口,因为我的'request'变量作为null。 ServletRequestAware实现了初始化请求的抽象方法。