Struts温习(5)--アクションFormのvalidatorメソッドの検証
今のこの検証は、最初の文章のそれとはまた違っています.これまではリソースファイルを配置したり、配置検証ファイルを配置したりしていましたが、今回はアクションFormの中の一つのvalidatorメソッドでコードを手作業で書くだけの方法で、実現した登録検証効果は同じです.
login.jsp
Login Form.java
web.xmlの配置、LoginnAction、その他のJSPページは全部最初の文章の中のと同じです.ここでは書きません.実現した効果は最初の文章に展示された効果です.
login.jsp
<%@ page pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Struts : </title>
</head>
<body>
<h3>Struts : </h3><hr/>
<ul style="color:red">
<html:messages id="msg">
<li>${msg}</li>
</html:messages>
</ul>
<form id="myForm" name="myForm" action="login.do" method="post">
<table border="1" width="600px">
<tr>
<td> </td>
<td><input type="text" name="loginname"/></td>
</tr>
<tr>
<td> </td>
<td><input type="password" name="pwd"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value=" "/>
<input type="reset" value=" "/>
</td>
</tr>
</table>
</form>
</body>
</html>
Login Form.java
package com.javacrazyer.web.formbean;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
/**
* .
*
*
*/
public class LoginForm extends ActionForm {
private static final long serialVersionUID = 6619272689058619128L;
private String loginname;
private String pwd;
@Override
public void reset(ActionMapping mapping, HttpServletRequest request) {
System.out.println("******* LoginForm reset ");
this.pwd = null;
this.loginname = null;
super.reset(mapping, request);
}
@Override
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
System.out.println(" LoginForm validate ------");
// null ActionErrors , 。 , <action> input URL
ActionErrors errors = new ActionErrors();
if(this.loginname == null || "".equals(this.loginname)){
ActionMessage msg = new ActionMessage(" ",false);
errors.add(ActionErrors.GLOBAL_MESSAGE, msg);
}
if(this.pwd == null || "".equals(this.pwd)){
ActionMessage msg = new ActionMessage(" ",false);
errors.add(ActionErrors.GLOBAL_MESSAGE, msg);
}
return errors;
}
public LoginForm(){
System.out.println(" LoginForm ");
}
public String getLoginname() {
return loginname;
}
public void setLoginname(String loginname) {
this.loginname = loginname;
System.out.println(" setLoginname() ");
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
System.out.println(" setPwd() ");
}
}
WEB-INF/struts-config.xml<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<!-- ================================================ Form Bean Definitions -->
<form-beans>
<form-bean name="loginForm" type="com.javacrazyer.web.formbean.LoginForm"/>
<form-bean name="regForm" type="com.javacrazyer.web.formbean.RegisterForm"/>
</form-beans>
<!-- =========================================== Action Mapping Definitions -->
<action-mappings>
<action path="/login" name="loginForm" type="com.javacrazyer.web.action.LoginAction" validate="true"
input="/index.jsp">
<forward name="succ" path="/login_success.jsp"/>
<forward name="failure" path="/login_failure.jsp"/>
</action>
</action-mappings>
</struts-config>
ここの例はvalidator.xmlとvalidator-rules.xmlを使わないでください.資源ファイルも必要ないです.web.xmlの配置、LoginnAction、その他のJSPページは全部最初の文章の中のと同じです.ここでは書きません.実現した効果は最初の文章に展示された効果です.