
李兴华《java web开发实战经典》第7章关于javabean的讲解中说道:
<jsp:setProperty>标签一共有4种使用方法·下面列出了4种操作语法的格式:
设置属性:
No. | 类型 | 语法格式 |
1 | 自动匹配 | <Jsp:setProperty name="实例化对象的名称(id) "property="*"/> |
2 | 指定属性 | <jsp:setProperty name="实例化对象的名称(id)" property="属性名称"/> |
3 | 指定参数 |
<jsp:setProperty name="实例化对象的名称(Id)" property="属性名称" param="参数名称"/> |
4 | 指定内容 |
<jsp:setProperty name="实例化对象的名称(Id)" property="属性名称" value="内容"/> |
这4中方法,基本上第一种最常用,第4种也可以用,第二种和第三种基本上不用,想一想也可以知道,第二种和第三种逻辑理解就有一定困难(小畸形),而第一种是比较好的写法,快捷:
<jsp:setproperty .. property="*"/>标签将全部的属性自动的设置到对应的SimpleBean属性中,这个*表示自动匹配,这个自动匹配理解如下:
在进行自动匹配时,简单点理解.实际上匹配的是参数名称(这里的参数名称是通过表单控件指定的)是否与属性的名称相符合,如果符合则会自动调用对应的setter进行内容的设置。
通过反射完成的操作过程:
在反射机制中可以通过getMethod()方法取得一个指定名称方法的mathod对象,在这里传入的是属性的名称.可以根据属性名称找到对应的setter()方法,完成属性内容的设定。此外,由于在编写setter()和getter()方法时必须符合命名要求,参数名称必须与属性名称一致.但实际上.是通过反射技术完成的。