建立一个表单对象用于进行数据的提交操作,配置一个与action对象相对应的xml文件对象用于实现对提交给action对象的数据信息进行数据校验操作
表单登录对象:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>登录表单</title> </head> <body> 进行错误信息的显示操作:<br> <s:fielderror/> <br> <form action="loginAction" method="post"> <s:textfield name="username" label="用户名"/> <br> <s:textfield name="age" label="年龄"/> <br> <s:textfield name="birthday" label="生日"/> <br> <s:password name="password" label="密码"/> <s:submit value="提交" align="left"/> </form> </body> </html>表单进行访问的action对象:loginAction
package com.action; import java.util.Date; import com.opensymphony.xwork2.ActionSupport; /** * * @author Administrator * */ public class LoginAction extends ActionSupport{ private String username; private int age; private Date birthday; private String password; /** * @return the username */ public String getUsername() { return username; } /** * @param username the username to set */ public void setUsername(String username) { this.username = username; } /** * @return the age */ public int getAge() { return age; } /** * @param age the age to set */ public void setAge(int age) { this.age = age; } /** * @return the birthday */ public Date getBirthday() { return birthday; } /** * @param birthday the birthday to set */ public void setBirthday(Date birthday) { this.birthday = birthday; } /** * @return the password */ public String getPassword() { return password; } /** * @param password the password to set */ public void setPassword(String password) { this.password = password; } @Override public String execute() { System.out.println("执行execute方法"); return "success"; } }重点:进行数据校验的xml配置文件,loginAction-validation.xml
注意:xml文件名字的前半部分必须和对应的action对象的名字设置为一置的,而后半部分固定不变的。(服务器进行调用时,是按照固定的格式来进行调用操作的)
进行数据校验的xml文件对象必须和action对象放到同一个包当中才行
在对password采用正则表达式进行校验操作时,
<param name="regex"><![CDATA[(\w{4,25})]]></param>
name不能够写为expression否则到校验失败时,将无法对校验错误的信息进行显示操作
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd"> <!--采用xml的方式来对来自于表单当中的数据信息进行校验操作--> <validators> <!--对username用户名参数进行数据校验操作--> <field name="username"> <!--对当前的请求字符串信息进行校验操作--> <field-validator type="requiredstring"> <!--去除username参数值当中的空格字符--> <param name="trim">true</param> <message>请输入用户名</message> </field-validator> <!--对username参数对象的长度进行校验操作分别设置最小最大参数来进行长度的设置操作--> <field-validator type="stringlength"> <param name="minLength">2</param> <param name="maxLength">16</param> <message>用户名长度在${minLength}到${maxLength}位之间!</message> </field-validator> </field> <field name="age"> <!--校验当前所输入的age参数对象是否是一个int形变量并对int变量值的范围进行设置操作--> <field-validator type="int"> <param name="min">1</param> <param name="max">150</param> <message>所输入的年龄必须为 ${min }到 ${max }之间</message> </field-validator> </field> <field name="birthday"> <!--对birthday参数值对象进行校验操作判断该参数对象是否是一个日期类型的并设置日期的范围--> <field-validator type="date"> <param name="min">1900-01-01</param> <param name="max">2050-02-21</param> <message>生日必须在 ${min } 到 ${max } 之间</message> </field-validator> </field> <field name="password"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>请输入密码</message> </field-validator> <field-validator type="regex"> <!-- 注意2.1版的name为expression,具体的需要查看regex校验器对应的类RegexFieldValidator,此处要填写为 regex如果谢伟expression时将会出现错误 --> <param name="regex"><![CDATA[(\w{4,25})]]></param> <message>所输入的密码必须为字母或数字且为4到25位之间</message> </field-validator> </field> </validators>进行struts.xml文件对象的配置操作:
在struts配置文件当中要注意的是要对input视图进行配置操作,因为当服务器对象对表单对象当中的数据校验失败时返回的是一个input视图
<?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-package" namespace="/" extends="struts-default"> <action name="loginAction" class="com.action.LoginAction"> <result name="success">/success.jsp</result> <result name="input">/login.jsp</result> </action> </package> </struts>程序运行效果:
扫描二维码关注公众号,回复:
1431325 查看本文章