jsp设置JavaBean属性值的动作jsp:setProperty

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


设置JavaBean属性值的动作<jsp:setProperty>
<jsp:setProperty>标识通常情况下与<jsp:useBean>标识一起使用,它调用JavaBean中的setXXX()方法,将请求中的参数赋值给由<jsp:useBean>标识创建的JavaBean中的对应的简单属性或索引属性。该标识的使用格式如下:
<jsp:setProperty
name="Bean实例名" {
property="*" |
property="propertyName" |
property="propertyName" param="parameterName" |
property="propertyName" value="值"
}/>
下面通过表1对<jsp:setProperty>标识中的各属性作简要说明。

表1  <jsp:setProperty>标识中各属性的简要说明
下面对表中属性的用法进行详细的介绍。
      name属性
name属性用来指定一个存在JSP中某个范围中的JavaBean实例。<jsp:setProperty>标识将会按照page、request、session和application的顺序来查找这个JavaBean实例,直到第一个实例被找到。若任何范围内不存在这个JavaBean实例则会抛出异常。
      property="*"
property属性取值为“*”时,则request请求中的所有参数的值将被一一赋给JavaBean中与参数具有相同名字的属性。如果请求中存在空值的参数,那么JavaBean中对应的属性将不会被赋值为Null;如果JavaBean中存在一个属性,但请求中没有与之对应的参数,那么该属性同样不会被赋值为Null。在这两种情况下的JavaBean属性都会保留原来或默认的值。
这种使用方法要求请求中参数的名称和类型必须与JavaBean中属性的名称和类型一致。但由于通过表单传递的参数都是String类型的,所以JSP会自动将这些参数转换为JavaBean中对应属性的类型。表2列出了JSP自动将String类型转换为其他类型时所调用的方法。

表2  将String类型转换为其他类型的方法
      property="propertyName"
property属性取值为JavaBean中的属性时,则只会将request请求中与该JavaBean属性同名的一个参数的值赋给这个JavaBean属性。
更进一步讲,如果property属性指定的JavaBean属性为“userName”,那么指定JavaBean中必须存在setUserName()方法,否则会抛出类似于下面的异常:
Cannot find any information on property 'userName' in a bean of type 'com.Bean.UserInfo'
在此基础上,如果请求中没有与“userName”同名的参数,则该JavaBean属性会保留原来或默认的值,而不会被赋值为Null。
与将property属性赋值为“*”一样,当请求中参数的类型与JavaBean中属性类型不一致时,JSP会自动进行转换。
      property="propertyName" param="parameterName"
param属性指定一个request请求中的参数,property属性指定JavaBean中的某个属性。该种使用方法允许将请求中的参数赋值给JavaBean中与该参数不同名的属性。如果param属性指定参数的值为空,那么由property属性指定的JavaBean属性会保留原来或默认的值而不会被赋为Null。
      property="propertyName" value="值"
其中value属性指定的值可以是一个字符串数值或表示一个具体值的JSP表达式或EL表达式。该值将被赋给property属性指定的JavaBean属性。

原文出自:http://www.isstudy.com/jsp/2430.html

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值