struts学习笔记—FormBean

struts的流程:

        截获*.do的页面请求——调用srtuts-config.xml查找对应的*.do——找对应的表单预处理项Form Bean和核心处理项HelloAction进行处理。Form Bean是对表单的封装。提交数据时,Struts会调用request.getParameter(“”)将值取出,然后通过setter方法设置到同名的FormBean属性上。另外,Form Bean有自动转化常用数据类型的功能和对用户输入信息进行validation校验的功能。其中的常用数据类型转换意思很简单,例如属性类型是int类型,但request.getParameter(“”)获取到的是String类型,Structs会调用Integer.parseInt(“”)转化为int类型。下面我们以具体实例来演示FormBean的validation表单校验功能。

FormBean的表单校验实例:

1.页面hello.jsp:

<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> 
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
 
<html> 
	<head>
		<title>JSP for HelloForm form</title>
	</head>
	<body>
		<html:form action="/hello">
			姓名 : <html:text property="name"/><html:errors property="name"/><br/>
			年龄 : <html:text property="age"/><html:errors property="age"/><br/>
			是否用过struts?:<html:checkbox property="experience" /><br/>
			<html:checkbox property="hobby" value="音乐"/>音乐
			<html:checkbox property="hobby" value="体育"/>体育
			<html:checkbox property="hobby" value="影视"/>影视<b><html:errors property="hobby"/></b><br/>
			<html:submit/><html:cancel/>
		</html:form>
	</body>
</html>

2.helloForm及其validation:

public class HelloForm extends ActionForm {
	
	private String name;
	private int age;
	private boolean experience;
	private Date date;
	private Time time;
	private String[] hobby;

	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		// TODO Auto-generated method stub
		ActionErrors errors=new ActionErrors();
		if(name==null||name.trim().length()==0)
			errors.add("name",new ActionMessage("hello.error.name"));
		if(hobby==null||hobby.length<1)
			errors.add("hobby",new ActionMessage("hello.error.hobby"));
		if(age<5)
			errors.add("age",new ActionMessage("hello.error.age",5));
		return errors;
	}


	public void reset(ActionMapping mapping, HttpServletRequest request) {
		// TODO Auto-generated method stub
		age=5;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public boolean isExperience() {
		return experience;
	}

	public void setExperience(boolean experience) {
		this.experience = experience;
	}

	public String[] getHobby() {
		return hobby;
	}

	public void setHobby(String[] hobby) {
		this.hobby = hobby;
	}

	public Time getTime() {
		return time;
	}

	public void setTime(Time time) {
		this.time = time;
	}

	public Date getDate() {
		return date;
	}

	public void setDate(Date date) {
		this.date = date;
	}
} 

 在HelloForm中我们看到用于验证的部分有姓名和喜好以及年龄,为空的话或者年龄小于5都会放到errors.add("",)里,然后在struts-config.xml里我们看到 <message-resources parameter="com.li.struts.ApplicationResources"/>,ApplicationResources是一个文件,存储着错误名和相应值的键值对。

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值