描述
jsp:setProperty:元素使用Bean给定的setter方法,在Bean中设置一个或多个属性值。在使用这个元素之前必须使用jsp:useBean声明此Bean。
因为jsp:useBean与jsp:setProperty是联系在一起的,同时它们使用的Bean实例的名字也应当相匹配(就是说jsp:setProperty中name的值应当和jsp:useBean中id的值相同)。
可使用多种方法jsp:setProperty来设定属性值:
- 通过用户输入的所有值(被做为参数储存于request对象中)来匹配Bean中的属性。
- 通过用户输入指定的值来匹配Bean的属性。
- 在运行时使用一个表达式来匹配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=”propertyNam”, value=”{String |<%= expression %>}”
使用指定的值来设定Bean属性。这个值可以是字符串,也可以是表达式。如果是个字符串,那么它就会被转换成Bean属性的类型。如果它是一个表达式,那么它的类型就必须和它将要设定的属性值的类型一致。如果参数值为空,那么对应的属性也不会被设定。别处,不能在一个jsp:setProperty中同时param和value。