i)
1. 编写jsp
对使用校验Form的jsp页面,需要做两个地方的改动,一是<html:form>的提交,一是添加<html:javascript/>,改动后的register.jsp代码如下,注意里面两处粗体显示部分,是我们改动的地方:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><bean:message bundle="user" key="user.welcome.register"/></title>
</head>
<body>
<html:form action="/register.do?method=register" οnsubmit="validateRegisterForm(this)">
<table width="50%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2"><div align="center"><bean:message bundle="user" key="user.welcome.register"/></div></td>
</tr>
<tr>
<td width="45%"> </td>
<td width="55%"> </td>
</tr>
<tr>
<td><div align="right"><bean:message bundle="user" key="user.username"/>:</div></td>
<td><html:text property="userName"></html:text>
*</td>
</tr>
<tr>
<td><div align="right"><bean:message bundle="user" key="user.password"/>:</div></td>
<td><html:password property="password"></html:password>
*</td>
</tr>
<tr>
<td><div align="right"><bean:message bundle="user" key="user.repassword"/>:</div></td>
<td><input name="rePassword" type="password" id="rePassword" size="20">
*</td>
</tr>
<tr>
<td><div align="right"><bean:message bundle="user" key="user.name"/>:</div></td>
<td><html:text property="name"></html:text>
*</td>
</tr>
<tr>
<td><div align="right"><bean:message bundle="user" key="user.email"/>:</div></td>
<td><html:text property="email"></html:text>
*</td>
</tr>
<tr>
<td><div align="right"><bean:message bundle="user" key="user.phone"/>:</div></td>
<td><html:text property="phone"/></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="2"><div align="center">
<html:submit><bean:message bundle="user" key="user.register"/></html:submit>
<html:reset><bean:message bundle="user" key="user.cancel"/></html:reset>
</div></td>
</tr>
</table>
<logic:notEmpty name="registerForm" property="message">
<script>
alert('<bean:message key="${registerForm.message}" bundle="user"/>');
</script>
</logic:notEmpty>
</html:form>
<html:javascript formName="registerForm"/>
</body>
</html>
第一改动的地方如下,在html:form里面添加了οnsubmit="validateRegisterForm(this)"属性,表示提交的时候调用validateRegisterForm方法.注意这个方法是struts自动生成的,它有它的约定格式validate+form名称.form名称的第一个字母需要大写.
<html:form action="/register.do?method=register" οnsubmit="validateRegisterForm(this)">
第二个改动的地方如下
formName的值需要是要校验的form的名称
<html:javascript formName="registerForm"/>