register.jsp
首先我们通过创建register.jsp来定义注册页面。这里使用了struts框架中的格式省去了一些麻烦。创建注册页面所需要的一些元素。为后续做准备。
<%@ page language=”java” contentType=”text/html; charset=UTF-8”
pageEncoding=”UTF-8”%>
<%@taglib prefix=”s” uri=”/struts-tags” %>
<%@taglib prefix=”sx” uri=”/struts-dojo-tags” %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户注册</title>
<sx:head extraLocales="utf-8"/>
</head>
<body style="margin:50px" bgcolor="pink">
<center><h2><label>注册页面</label></h2></center>
<center>
<s:form action="register.action">
<s:textfield name="name" label="*会员登录名"></s:textfield>
<s:textfield name="username" label="真实姓名"></s:textfield>
<s:password name="pass" label="*输入密码"></s:password>
<s:password name="repass" label="*确认密码"></s:password>
<s:radio list="#{'1':'男','0':'女' } " value="1" label="性别" name="sex"></s:radio>
<s:select list="{'江苏','北京','上海','天津'}" label="省份" name="province"></s:select>
<s:textfield name="age" label="年龄"></s:textfield>
<sx:datetimepicker name="birth" displayFormat="yyyy-MM-dd" label="生日" accesskey="false" language="utf-8"></sx:datetimepicker>
<s:checkboxlist list="{'游泳','徒步','打乒乓球','看书','其他'}" name="love" label="爱好"></s:checkboxlist>
<s:textfield name="mobile" label="手机"></s:textfield>
<s:textfield name="email" label="电子邮箱"></s:textfield>
<s:submit value="提交"></s:submit>
</s:form>
</center>
</body>
</html>
RegisterAction.java
因为是使用struts框架所以要在src中定义Action。代码如下,并且返回成功页面
package org.crazyit.app.action;
import java.util.Date;
import com.opensymphony.xwork2.ActionSupport;
public class RegisterAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private String name;
private String username;
private String pass;
private String repass;
private int age;
private int sex;
private String province;
private Date birth;
private String[] love;
private String mobile;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public String getRepass() {
return repass;
}
public void setRepass(String repass) {
this.repass = repass;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public String[] getLove() {
return love;
}
public void setLove(String[] love) {
this.love = love;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String regist() {
return "success";
}
}
RegisterAction-validation.xml
说道注册页面,怎么能少得了检验和验证呢。通过validators来验证数据的正确与否。
“-//Apache Struts//XWork Validator 1.0.3//EN”
“http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd”>
<validators>
<field name="name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>请输入会员登录名</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">18</param>
<message>会员登录名必须在${minLength}~${maxLength}</message>
</field-validator>
</field>
<field name="pass">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>请输入密码</message>
</field-validator>
<field-validator type="regex">
<param name="regex"><![CDATA[(\w{6,12})]]></param>
<message>密码必须在6~12位之间且只能是字母和数字</message>
</field-validator>
</field>
<field name="repass">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>请输入密码</message>
</field-validator>
<field-validator type="fieldexpression">
<param name="expression"><![CDATA[pass==repass]]></param>
<message>两次密码不相符</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message>年龄必须在${min}到${max}岁之间</message>
</field-validator>
</field>
<field name="birth">
<field-validator type="date">
<param name="min">1900-01-01</param>
<param name="max">2050-01-01</param>
<message>生日日期必须在${min}到${max}之间</message>
</field-validator>
</field>
<field name="mobile">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>电话号码不能为空</message>
</field-validator>
<field-validator type="regex">
<param name="regex"><![CDATA[(\d{11})]]></param>
<message>电话号码必须在11位之间且只能是数字</message>
</field-validator>
</field>
<field name="email">
<field-validator type="email">
<message>电子邮件地址输入不合法</message>
</field-validator>
</field>
</validators>
result.jsp
最后就是结果页面,显示之前所有输入的数据。
<%@ page language=”java” contentType=”text/html; charset=UTF-8”
pageEncoding=”UTF-8”%>
<%@taglib prefix=”s” uri=”/struts-tags” %>
结果页面
注册成功
struts.xml
也是控制页面Action的页面在其中定义action通过来实现筛选控制达到页面的控制以及跳转。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="register"
class="org.crazyit.app.action.RegisterAction"
method="regist">
<result name="success">/result.jsp</result>
<result name="input">/register.jsp</result>
</action>
</package>
</struts>