今天写了个Struts验证框架的实例,总算把验证框架弄清楚了。
上一篇Struts实例的action没有继承ActionSupport类,虽然也可以实现action的功能,但是却不能应用Struts提供的其他
功能。
1、应用验证框架时action必须extends ActionSupport类。
public class LoginAction extends ActionSupport{ // 继承ActionSupport类 private static final long serialVersionUID = 1L; //User user=new User(); User user; // JavaBean 不需要实例化,自动赋值 public User getUser() { return user; } public void setUser(User user) { this.user = user; } public String execute(){ if("111".equals(user.getUsername())){ return "success"; } return "input"; } }
2、可以override validate()方法,也可以用xml配置文件。
在这里应用xml配置文件进行验证。配置文件必须和验证的action放在同一包目录下。
3、LoginAction-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.username"> <field-validator type="requiredstring"> <message>请输入姓名</message> </field-validator> </field> <field name="user.password"> <field-validator type="requiredstring"> <message>请输入密码</message> </field-validator> </field> </validators>
4、jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %> <!--引入Struts标签 -->
<!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>Insert title here</title>
</head>
<body>
<s:form action="LoginAction" method="post">
<s:textfield name="user.username" label="用户名" />
<s:textfield name="user.password" label="密码" />
<s:submit value="提交"/>
</s:form>
</body>
</html>
运行结果