○ 定义主类
○ 继承
○ 定义私有属性
○ 提供无参构造方法和相应的get/set方法
○ 根据实际情况添加()和reset()方法
动态的 -
• 使用目的:避免肿胀
• 不需要自己写类,只需要在-.xml中配置,就会自动创建
• 配置:
○ 在标签中配置,type属性为提供的动态类文件
○ 配置标签,name属性的值为表单参数名对应的属性名,type属性的值为表单bean中需要的数据类型【写数据类型的全名】
内部结构:
有两个 Map 集合:
§ : -- key是标签中name属性的值,value是对象
□ --封装标签中的各个属性,Sting类型
§ :根据标签采集表单数据时,将参数数据存储在表单中
□ key为标签中定义的name属性,value为用户在表单中输入的对应参数数据
• 动态表单bean 实例:
○ 配置:
○ 启动,创建存储对象:
§--键=“”,值=对象
§--名称=“”,类型=“”
○ 用户发送请求查找请求对应的标签,最终通过name=””找到type=””创建对象:
§ 请求字符串::8080//.do?="tom"&age="23"
○ 创建对象后立即通过配置信息创建对象和集合:
§ 收集:
□ key="" value = [name = "" / type = "java.lang."]
□ key="age" value = [ name = "age" / type = "java.lang." ]
○ 调用()方法收集表单数据:将表单中的数据收集到集合中
:
□ 使用参数名称查找key为的对象
□ 通过对应查找类型
□ 设置Map下的表单参数名称和参数值 -- key = "", value = "tom"
年龄:
□ 使用参数名age查找key为age的对象
□ 通过对应查找类型
□ 在静态Map集合中找到一个整数转换器,将“23”转换为23【将字符串转换为整数】
□ 设置Map下的表单参数名称和参数值 -- key = "age", value = 23
()方法执行中:
通过建模获得,因为数据被采集到Map中,所以要从集合中获取属性,源码中有如下定义:
public Object get(String name) { Object value = dynaValues.get(name); if ( value != null ) { return (value); }
因此: = daf.get(""); 即从动态表单Bean中获取属性就是从集合中取出以key为值的值
进入jsp页面获取数据:
源码中有如下定义:
public Map getMap() { return (dynaValues); } // 用表单Bean 对象调用 getMap() 方法会获取到 dynaValues 集合对象
§ ${.地图。}
□ 当表单Bean对象创建成功后,该对象已被设置到作用域内置对象中,属性名称为name属性值
• 缺点:
® 通过属性名称获取对象
® 通过.()获取对象
® 调用.get(""); 输出属性值
○ 数据传输困难:动态不方便向业务层传递大量参数:动态中不能使用.()方法
○ 编译器不对动态配置进行语法检查,因此容易出错
动态背景验证
• 1 使用动态完成表单数据的后台验证
• 背景验证示例:
创建开始后,读取主配置文件,读取-.xml
打开插件标签时会立即自动创建插件对象
插件类在标签中配置
□ 作为一个插件类,必须实现接口——实现init()和()方法,并且有一个字符串类型的私有属性{
void destroy(); void init(ActionServlet servlet, ModuleConfig config) throws ServletException; } public class ValidatorPlugIn implements PlugIn { private String pathnames = null; public destroy() { } public void init( ActionServlet servlet, ModuleConfig config) throws ServletException {} }
§ 创建插件对象后,将表示两个验证规则的 xml 文件注入到插件类的属性中
□ 同时调用init()方法从指向的字符串中获取指定文件的指定位置,并将两个验证规则文件读入内存
如果有一些语句想要一启动就执行,可以写在 // 或者插件对象的 init() 方法中
○ 用户发送请求,通过请求字符串创建对象,同时创建对象和集合: 请求字符串::8080/aaa/.do?=""&=""
§ 此时动态类文件是--继承的
□ 类 orm { }
® 类 { }
□ 内部结构符合
:
□ key="" value = [name = "" / type = "java.lang."]
□ key="" value = [name = "" / type = "java.lang."]
○ 自动将表单数据收集到集合中:
§:
□ 键 = "", 值 = "" [空字符串]
§:
□ 键 = "", 值 = "" [空字符串]
○ 验证规则:
§ 根据读入内存的验证规则,调用相应的方法验证对象中的数据
§ 如果发现为空字符串,则会生成错误消息。 不再寻找类型,而是直接转向输入属性中的转向路径,并通过标签显示错误信息