<jsp:setProperty>

  <jsp:setProperty>元素使用Bean给定的setPropertyName方法,在Bean中设置一个或多个属性值。在使用这个元素之前必须使用<jsp:useBean>声明此Bean。   
因为<jsp:useBean>与<jsp:setProperty>是联系在一起的,同时它们使用的Bean实例的名字也应当 相匹配(就是说<jsp:setProperty>中name的值应当和<jsp:useBean   >中id的值相同)。   
可使用多种方法<jsp:setProperty>来设定属性值:   
1)通过用户输入的所有值(被做为参数储存于request对象中)来匹配Bean中的属性。   
2)通过用户输入指定的request中的属性名来匹配属性。   
3)在运行时使用一个表达式或value值来匹配Bean的属性。   
属性:   
name="beanInstanceName"   bean的名字,由<jsp:useBean>指定     
property=”*”   
储存用户在JSP输入的所有值,用于匹配Bean中的属性,在Bean中属性的名字必须和Request对象的参数名一致。如果Request对象的参数 值中有空值,那么对应的Bean属性将不会设定任何值。同样的如果Bean中有一个属性没有与之对应的Request参数值,那么这个属性同样也不会设 定。   
property=”propertyName”   [param=”parameterName”]   
使用Request中的一个参数值来指定Bean中的一个属性值。在这个语法中,property指定Bean的属性名,param指定Request中的参数名。   
如果bean属性与Request参数的名字不同,那么就必须得指定property和param,如果它们同名,只需要指明property就行了。  
如果参数值为空(或未初始化)对应的Bean属性不被设定。   
property=”propertyName”   value=”{String   |<%=   expression   %>}”   
使用指定的值来设定Bean属性。这个值可以是字符串,也可以是表达式。如果是个字符串,那么它就会被转换成Bean属性的类型。如果它是一个表达式,那么它的类型就必须和它将要设定的属性值的类型一致。   
如果参数值为空,那么对应的属性也不会被设定。别处,不能在一个<jsp:setProperty>中同时param和value。   

另外还有一点,这里的setProperty与getProperty行为要执行实际上是调用bean中的方法,必须在name对应的JavaBean中实现ReturnType setPropertyName(Type value)和ReturnType getPropertyName() 才行,而不是bean中存在那个属性就可以了的(我一直的误区。。。)。javabean中的属性值不一定要和property一样,而只要方法名中set和get后的属性值必须和property相同,就可以完成jsp向bean的参数传递。
而经过我的实际测试,bean中setPropertyName()方法的形参不需要和property相同也可以,但最好还是写成一样,方便阅读!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<jsp:useBean>标签用于在JSP页面创建一个JavaBean对象,并将其存储在指定的作用域。它的语法如下: ```jsp <jsp:useBean id="beanName" class="fullyQualifiedClassName" scope="scopeName" /> ``` - `id`属性指定了JavaBean对象的名称,可以在后续的代码使用该名称引用对象。 - `class`属性指定了JavaBean对象的类名,需要提供完全限定的类名。 - `scope`属性指定了JavaBean对象的作用域,可以是`page`、`request`、`session`或`application`。 <jsp:setProperty>标签用于为JavaBean对象的属性设置值。它的语法如下: ```jsp <jsp:setProperty name="beanName" property="propertyName" value="propertyValue" /> ``` - `name`属性指定了要设置属性值的JavaBean对象的名称。 - `property`属性指定了要设置的属性名。 - `value`属性指定了要设置的属性值。 <jsp:getProperty>标签用于获取JavaBean对象的属性值。它的语法如下: ```jsp <jsp:getProperty name="beanName" property="propertyName" /> ``` - `name`属性指定了要获取属性值的JavaBean对象的名称。 - `property`属性指定了要获取的属性名。 执行过程如下: 1. 当遇到`<jsp:useBean>`标签时,JSP容器会检查指定名称的JavaBean对象是否已经存在于指定作用域。如果不存在,则会创建一个新的JavaBean对象,并将其存储在指定作用域。 2. 当遇到`<jsp:setProperty>`标签时,JSP容器会根据指定的名称找到对应的JavaBean对象,并为其指定的属性设置值。 3. 当遇到`<jsp:getProperty>`标签时,JSP容器会根据指定的名称找到对应的JavaBean对象,并获取其指定属性的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值