struts2有自有的标签
<s:form action="login" validate="true" class="form-signin">
<h2 class="form-signin-heading">管理员登录</h2>
<s:textfield name="username" cssClass="form-control" placeholder="用户名"/>
<s:textfield name="password" cssClass="form-control" placeholder="密码"/>
<s:submit class="btn btn-primary btn-block" value="登陆"/>
</s:form>
这是我们常用的登陆表单。在struts.xml设置拦截
<package name="login" namespace="/" extends="struts-default">
<action name="login" class="com.user.Action.LoginAction">
<result name="input">AdminLogin.jsp</result>
<result name="SUCCESS">AdminLogin.jsp</result>
</action>
</package>
在实际的应用中。登陆时提示用户名或密码错误是必要的功能。
所以在
public void validate() {
if (用户名不对) {
addFieldError("username", "用户名错误");
}
}
如果在validate方法并不通过,将直接返回input结果在加入错误的提示,在struts.xml对input结果进行设置结果
<result name="input">AdminLogin.jsp</result>
还是本页面。
并且在登陆的页面中加入下面代码,
<s:if test="hasFieldErrors()">
<s:iterator value="fieldErrors">
<s:iterator value="value">
<script language="JavaScript">
alert('<s:property/>');
</script>
</s:iterator>
</s:iterator>
</s:if>
如果有错误将用js进行弹窗提示。通过struts框架,使得jsp文件中的逻辑代码几乎全部转移到action中。便于维护。