目录

JSP setProperty动作标签的用法

2019年01月23日 15:11 | 253次浏览

<jsp:setProperty> 动作标记通常与 <jsp:useBean> 动作标记一起使用,它以请求中的参数给创建的 JavaBean 中对应的属性赋值,通过调用 bean 中的 setXxx() 方法来完成。其语法格式如下:

<jsp:useBean id="变量名"... />
{
    property="*"
    |property="propertyName"
    |property="propertyName" parme="parmeterName"
    |property="propertyName" value="值"
}
/>

下面对 <jsp:setProperty> 动作中各属性的用法进行详细介绍。

(1) name 属性:用来指定一个存在于 JSP 中某个范围内的 bean 实例。

<jsp:setProperty> 动作标记将按照 page、request、session 和 application 的顺序来查找这个 bean 实例,直到第一个实例被找到。如果任何范围内都不存在这个 bean 实例会拋出异常。


(2) property="*":当 property 的取值为“*”时,要求 bean 属性的名称与类型要与 request 请求中参数的名称及类型一致,以便用 bean 中的属性来接收客户输入的数据,系统会根据名称来自动匹配。

如果 request 请求中存在值为空的参数,那么 bean 中对应的属性将不会被赋值为 null;如果 bean 中存在一个属性,但请求中没有与之对应的参数,那么该属性同样不会被赋值为 null。这两种情况下的 bean 属性都会保留原来的值或者默认的值。

此种使用方法的限定条件是:请求中参数的名称和类型必须与 bean 中属性的名称和类型完全一致。但通过表单传递的参数都是 String 类型,所以,JSP 会自动地将这些参数转换为 bean 中对应属性的类型。

表 1 给出了 JSP 自动将 String 类型转换为其他类型时所调用的方法。

其他类型转换方法
Integerjava.lang.Integer.value()Of(String)
intjava.lang.Integer.value()Of( String).intValue()
Doublejava.lang.Double.value()Of(String)
doublejava.lang.Double.value()Of(String).doubleValue()
Floatjava.lang.Float.value()Of(String)
floatjaya.lang.Float.value()Of(String).floatValue()
Longjava.lang.Long.value()Of(String)
longjava.lang.Long.value()Of( String).longValue()
Booleanjava.lang.Boolean.value()Of(String)
booleanjava.lang.Boolean.value()Of(String).booleanValue()
Bytejava.lang.Byte.value()Of(String)
bytejava.lang.Byte.value()Of(String).byteValue()


(3) property="upropertyName":当 property 属性取值为 bean 中的属性时,只会将 request 请求中与该 bean 属性同名的一个参数的值赋给这个 bean 属性。

如果请求中没有与 property 所指定的同名参数,则该 bean 属性会保留原来的值或默认的值,而不会被赋值为 null。与 property 属性值为时一样,当请求中参数的类型与 bean 中的属性类型不一致时,JSP 会自动进行转换。


(4) property="propertyName" param="parameterName":property 属性指定 bean 中的某个属性,param 属性指定 request 请求中的参数。该种方法允许将请求中的参数赋值给 bean 中与该参数不同名的属性。

如果 param 属性指定参数的值为空,那么由 property 属性指定的 bean 属性会保留原来的值或默认的值,而不会被赋为 null。


(5) property="propertyName" value="值":value 属性指定的值可以是一个字符串数值或表示一个具体值的 JSP 表达式或 EL 表达式,该值将被赋给 property 属性指定的 bean 属性。

当 value 属性是一个字符串时,如果指定的 bean 属性与其类型不一致,JSP 会将该字符串值自动转换成对应的类型。

当 value 属性指定的是一个表达式时,则该表达式所表示的值的类型必须与 property 属性指定的 bean 属性一致,否则,将会拋出 argument type mismatch 异常。



感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程