struts2--基于xml文件的验证器

本文介绍了一个使用Struts2框架实现的登录验证案例,包括登录页面展示、登录Action处理逻辑、Struts配置文件详解及校验规则配置。通过这个例子可以了解如何在Struts2中设置和使用表单验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


结果:

登录界面:

  <body>
    <s:form action = "login.action" method = "post" validate="true">
     <s:textfield name = "user.username" label = "用户名"/>
     <s:password name = "user.password" label = "密码"/>
     <s:textfield name = "user.age" label = "年龄"/>
     <s:textfield name = "user.tel" label = "电话"/>
     <s:textfield name = "user.birthday" label = "生日"/>
     <s:submit value = "提交"/>
    </s:form>
  </body>

Action:

package com.action;

import com.bean.User;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
 private User user;
 public String execute() {
	return SUCCESS;
}
public User getUser() {
	return user;
}

public void setUser(User user) {
	this.user = user;
}
 
}
struts.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
  <package name="default" namespace = "/" extends = "struts-default">
    <action name = "login" class = "com.action.LoginAction">
       <result>/ok.jsp</result>
       <result name = "input">/login.jsp</result>
    </action>
  </package>
</struts>

校验器LoginAction.validation.xml配置:放在与Action类同一目录下

<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE validators PUBLIC
  		"-//OpenSymphony Group//XWork Validator 1.0.3//EN"
  		"http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">

<validators>
  <field name  = "user.username">
    <field-validator type = "requiredstring">
       <param name = "doTrim">true</param>
       <message>请输入姓名</message>
    </field-validator>
    <field-validator type = "regex">
       <param name = "expression"><![CDATA[(\w{4,20})]]></param>
       <message>您输入的姓名只能是字母和数字,且长度在4到20之间</message>
    </field-validator>
  </field>
  
  <field name = "user.password">
    <field-validator type = "requiredstring">
       <param name = "doTrim">true</param>
       <message>请输入密码</message>
    </field-validator> 
    <field-validator type = "regex">
       <param name = "expression"><![CDATA[(\w{6})]]></param>
       <message>您输入的姓名只能是字母和数字,且长度为6</message>
    </field-validator> 
  </field>
  
    <field name = "user.tel">
    <field-validator type = "requiredstring">
       <param name = "doTrim">true</param>
       <message>请输入电话号码</message>
    </field-validator> 
    <field-validator type = "regex">
       <param name = "expression"><![CDATA[(^1[3578]\d{9}$)]]></param>
       <message>您输入的格式不正确</message>
    </field-validator> 
  </field>
  
   <field name = "user.age">
    <field-validator type = "int">
       <param name = "min">1</param>
       <param name = "max">100</param>
       <message>请输入您的真实年龄</message>
    </field-validator> 
  </field>
  
   <field name = "user.birthday">
    <field-validator type = "date">
       <param name = "min">1990-01-01</param>
       <param name = "max">2020-01-01</param>
       <message>请输入正确的生日</message>
     </field-validator> 
  </field>
</validators>        

输出:

  <body>
    用户名<s:property value = "user.username"/>
  </body>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏油

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值