校验 是否校验成功 校验失败错误页面 校验成功,发送请求到Action
监听器
在struts里面还有监听器,监听器要继承你要监听的东西如下面代码
上面代码继承两个域的属性监听,当然要让监听器生效,还要对web.xml配置文件进行配置,web经常需要配置配置文件
在上面web.xml里面接近结尾处加了一个listener标签,这是让listener运行的关键,很明显,框架的作用这时候就体现出来了,只要你写好代码再配置一下文件,框架就会帮你自动运行,而不用你操心
手动在Action里获取ActionForm对象
在一个Action的excute方法里添加这个方法,然后获取form,再与excute传进去的那个form是否一致,值得注意的是那个Attribute是你设置的form的名字
服务端校验
在
对
应
的
Form
覆
盖
validate
方
法
即
可
一般情况下校验都是开着的,而为什么就算数据错误都会不报错呢,那是继承ActionForm接口的同时也继承了ActionForm的validate(校验)方法,而ActionForm的validate方法是没有返回值的,在没有覆盖父类的validate方法之前,默认的validate是来自父类的validate方法
如何关闭校验呢
上面的绿色的字已经大概解析了,下面再发一个图片演示一下
配置文件简介
作用:使ActionServlet,ActionMapping,Action,ActionForm这几个不同层次的组件相互协调工作。这些配置文件是在系统启动的时候,读入内存中,供控制器使用。
web.xml
struts-config.xml
元素
元素帮助进行框架内部的流程控制,可将请求URL映射到Action类,将Action对象与ActionForm对象相关联。元素内可定义多个子元素 元素
所描述的是特定的请求路径和一个相应的Action类之间的映射关系。有以下属性: request/session的getAttribute(attribute)方法返回该form bean实例。用来存取form关键字,缺省值与name一样。
Input:当表单验证失败时将请求转发的URL,一般结合vaildate=”true”来用。 Validate:是用语控制是否校验表单(校验开关),缺省值为true-校验,false为不校验,不校验当然都通过就没必要跳转了。
分析Struts框架
类:
1.ActionServlet
读取配置文件:dom4j 填充form
派发请求,调用对应Action的execute方法 查找响应 2.ActionForm
Reset 重置方法 Validate 校验方法 3.Action
Execute(ActionMapping,ActionForm,HttpServletRequest,HttpServletResponse)运行方法
4.ActionMapping
属性:
Path Name Type Validate
HashMap 装forward