struts2 表单验证学习

login.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>系统登录</title>

</head>

<body style="margin:0px;">
	<div
		style="width:320px;margin-left:auto;margin-right:auto;margin-top:150px;float:none;">
		<center>
			<h2>系统登录</h2>
		</center>
		
		<s:form name="form1" action="login" method="POST">
			<s:textfield name="user.userId" label="用户名" value=""
				style="width:200px;height:30px; line-height:20px;padding:5px;"></s:textfield>
			<s:password name="user.password" label="密 码" value=""
				style="width:200px;height:30px; line-height:20px;padding:5px;"></s:password>
			<s:submit value="提交" style="width:80px;height:25px;"></s:submit>
			<s:reset value="重置" style="width:80px;height:25px;"></s:reset>
		</s:form>
	</div>
	
	<div>${tip}</div>
</body>
</html>


LoginUserAction:

package com.gifer.action;

import com.gifer.model.LoginUser;
import com.opensymphony.xwork2.ActionSupport;

public class LoginUserAction extends ActionSupport {

	private static final long serialVersionUID = -4200395139850721503L;

	private String tip;
	private LoginUser user;

	public LoginUser getUser() {
		return user;
	}

	public void setUser(LoginUser user) {
		this.user = user;
	}

	public String getTip() {
		return tip;
	}

	public void setTip(String tip) {
		this.tip = tip;
	}

	@Override
	public String execute() throws Exception {
		this.tip = "登录验证成功!";
		return SUCCESS;
	}

}


LoginUserAction-validation.xml

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

<validators>
	<field name="user.userId">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message>必须输入用户名</message>
		</field-validator>
	</field>
	<field name="user.password">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message>必须输入密码</message>
		</field-validator>
	</field>
	
</validators>



实体类:LoginUser

package com.gifer.model;

import java.sql.Timestamp;

public class LoginUser implements java.io.Serializable {

	// Fields

	/**
	 * 
	 */
	private static final long serialVersionUID = 5822711476237052251L;
	private String userId;
	private String userName;
	private String password;
	private String sex;
	private Timestamp birth;
	private String url;
	private String remark;
	private Timestamp registerTime;
	private Timestamp lastLoginTime;
	private Long status;

	// Constructors

	/** default constructor */
	public LoginUser() {
	}

	/** minimal constructor */
	public LoginUser(String userName, String password) {
		this.userName = userName;
		this.password = password;
	}

	/** full constructor */
	public LoginUser(String userName, String password, String sex,
			Timestamp birth, String url, String remark, Timestamp registerTime,
			Timestamp lastLoginTime, Long status) {
		this.userName = userName;
		this.password = password;
		this.sex = sex;
		this.birth = birth;
		this.url = url;
		this.remark = remark;
		this.registerTime = registerTime;
		this.lastLoginTime = lastLoginTime;
		this.status = status;
	}

	// Property accessors

	public String getUserId() {
		return this.userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public String getUserName() {
		return this.userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPassword() {
		return this.password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getSex() {
		return this.sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public Timestamp getBirth() {
		return this.birth;
	}

	public void setBirth(Timestamp birth) {
		this.birth = birth;
	}

	public String getUrl() {
		return this.url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public String getRemark() {
		return this.remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public Timestamp getRegisterTime() {
		return this.registerTime;
	}

	public void setRegisterTime(Timestamp registerTime) {
		this.registerTime = registerTime;
	}

	public Timestamp getLastLoginTime() {
		return this.lastLoginTime;
	}

	public void setLastLoginTime(Timestamp lastLoginTime) {
		this.lastLoginTime = lastLoginTime;
	}

	public Long getStatus() {
		return this.status;
	}

	public void setStatus(Long status) {
		this.status = status;
	}

}


struts.xml

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

在学习的过程有几点值得注意:

1、action的result必须包含input的返回,最开始我用的是login,结果每次都报错。验证失败后,拦截器默认是向input结果跳转。

2、验证配置xml文件的格式是这样的:xxx-validation.xml  其中"xxx"代表action的类名,这里我的action是:LoginUserAction,

      所以验证配置应用文件名是:LoginUserAction-validation.xml


3、文件LoginUserAction-validation.xml中 <field name="user.password">的name属性应与表单中的field的name属性相呼应,表示这个验证提示信息显示的位置。






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值