首页 > 编程笔记 > Java笔记 阅读:107

JSP jsp:setProperty:属性值设定标签

JSP 中的 <jsp:setProperty> 标签通常情况下与 <jsp:useBean> 标签一起使用,它将调用 Bean 中的 setXXX() 方法将请求中的参数赋值给由 <jsp:useBean> 标签创建的 JavaBean 中的对应的简单属性或索引属性。

语法:

<jsp:setProperty
name="Bean实例名"
{
property="*"|
property="propertyName"|
property="propertyName"param="parameterName"|
property="propertyName"value="值"
}/>

<jsp:setProperty> 标签中各属性的简要说明如表所示。

属  性 说  明
name 必须存在的属性,用来指定一个Bean实例
property 必须存在的属性,可选值为或指定Bean中的属性。当取值为时,则request请求
中的所有参数的值将被一一赋给Bean中与参数具有相同名字的属性:若取值为Bean中的属性, 
则只会将request请求中与该属性同名的一个参数的值赋给这个Bean属性,
若此时指定了 param 属性,那么请求中参数的名称与Bean属性名可以不同
param 用于指定请求中的参数,通过该属性指定的参数的值将被赋给由property属性指定的Bean 属性
value 用来指定一个值,它可以是表示具体值的表达式。通常与property属性一起使用,
表示将指 定的值赋给指定的Bean属性。value属性不能与param属性一起使用

property 属性取值为“*”时,则 request 请求中的所有参数的值将被一一赋给 Bean 中与参数具有相同名字的属性。如果请求中存在空值的参数,那么 Bean 中对应的属性将不会被赋值为 Null;如果 Bean 中存在一个属性,但请求中没有与之对应的参数,那么该属性同样不会被赋值为 Null。这两种情况下的 Bean 属性都会保留原来或默认的值。

这种使用方法要求请求中参数的名称和类型必须与 Bean 中属性的名称和类型一致。但由于通过表单传递的参数都是 String 类型的,所以 JSP 会自动将这些参数转换为 Bean 中对应属性的类型。下表列出了 JSP 自动将 String 类型转换为其他类型时所调用的方法。

其他类型 转换方法
boolean java.lang.Boolean.valueORString).booleanValue()
Boolean java Jang.Boolcan.valueOf ⑸ ring)
byte java.lang.Bytc.valucOflStringJ.bjtcValucO
Byte java.lang.Bytc.valucOf|String)
double java.lang.Doublc.valucOflString).doublcValuc()
Double java.lang.Double.valueOfl( String)
ini java.lang. Integer. valueOf^String).intValue()
Integer java.lang. Integer. valueOf^String)
float java. lang. Float .valucOnString). float Value();
Float java.Iang.Float.valucORString)
long java. lang. Lx)ng. valueOf( Stri ng). longValuef)
Long java.Iang.Long.valueOftString)

示例1

在不存在 Body 标签的页面中应用 <jsp:useBean> 和 <jsp:setProperty> 标签为 Bean 中的内容进行赋值,具体代码如下:
<jsp:useBean id="logonimg" class="com.javabean.Image" scope="request"/>
<jsp:setProperty name="logonimg" property="x" param="logon.x"/>
<jsp:setProperty name="logonimg" property="y" param="logon.y"/>

示例2

在 Body 标签内应用 <jsp:setProperty> 和 <jsp:useBean> 标签为 Bean 中的内容赋值,具体代码如下:
<jsp:useBean id="logonimg" class="com.javabean.Image" scope="request">
  <jsp:setProperty name="logonimg" property="x" param="logon.x"/>
  <jsp:setProperty name="logonimg" property="y" param="logon.y"/>
</jsp:useBean>

所有教程

优秀文章