无法使用表达式语言获得 Struts2 表单验证的正确代码
Can't get the code right for Struts2 form validation using expression language
我想要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>
我在重新检查时得到了答案。
我没有实现 ServletRequestAware 接口,因为我的 'request' 变量充当空值。 ServletRequestAware 实现初始化请求的抽象方法。
我想要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>
我在重新检查时得到了答案。 我没有实现 ServletRequestAware 接口,因为我的 'request' 变量充当空值。 ServletRequestAware 实现初始化请求的抽象方法。