jsp:setProperty设置属性使用详解
<jsp:setProperty>用来和jsp:useBean一起协作.设置已经实例化的Bean对象的属性.
语法
<jsp:setProperty name = "JavaBean实例名" property = "*"/>
该形式是设置Bean 属性的快捷方式.在Bean 中属性的名字,类型必须和request对象中的参数名称相匹配。由于表单中传过来的数据类型都是String 类型的,Jsp内在机制会把这些参数转化成Bean属性对应的类型。property = "*"表示所有名字和Bean属性名字匹配的请求参数都将被传递给相应的属性set方法。
<jsp:setProperty name = "JavaBean实例名" property = "JavaBean属性名" />
使用request对象中的一个参数值来指定Bean中的一个属性值。在这个语法中,property指定Bean 的属性名,而且Bean 属性和request参数的名字应相同。也就是说,如果在Bean 中有setUserName(String userName)方法,那么,propertyName的值就是"userName".这种形式灵活性较强,可以有选择的对Bean中的属性赋值.
<jsp:setProperty name = "JavaBean实例名" property = "JavaBean属性名" value = "BeanValue"/>
value用来指定Bean属性的值。字符串数据会在目标类中通过标准的valueOf方法自动转换成数字、boolean、Boolean、byte、Byte、char、Character。例如,boolean和Boolean类型的属性值(比如“true”)通过Boolean.valueOf转换,int和Integer类型的属性值(比如“42”)通过Integer.valueOf转换。
<jsp:setProperty name = "JavaBean实例名" property = "propertyName" param = "request对象中的参数名" />
param指定用哪个请求参数作为Bean属性的值。Bean 属性和request参数的名字可以不同。如果当前请求没有参数,则什么事情也不做,系统不会把null传递给Bean属性的set方法。因此,你可以让Bean自己提供默认属性值,只有当请求参数明确指定了新值时才修改默认属性值。
属性
属性 | 描述 |
---|---|
name | name属性是必需的。它表示要设置属性的是哪个Bean。 |
property | property属性是必需的。它表示要设置哪个属性。有一个特殊用法:如果property的值是"*",表示所有名字和Bean属性名字匹配的请求参数都将被传递给相应的属性set方法。 |
value | value 属性是可选的。该属性用来指定Bean属性的值。字符串数据会在目标类中通过标准的valueOf方法自动转换成数字、boolean、Boolean、 byte、Byte、char、Character。例如,boolean和Boolean类型的属性值(比如"true")通过 Boolean.valueOf转换,int和Integer类型的属性值(比如"42")通过Integer.valueOf转换。 value和param不能同时使用,但可以使用其中任意一个。 |
param | param 是可选的。它指定用哪个请求参数作为Bean属性的值。如果当前请求没有参数,则什么事情也不做,系统不会把null传递给Bean属性的set方法。因此,你可以让Bean自己提供默认属性值,只有当请求参数明确指定了新值时才修改默认属性值。 |
注意:value和param属性不能同时使用,但可以使用其中任意一个。
1. value是自定义属性的值,param是将请求参数(比如前端表单数据) 作为值 注入到该property中。
2. param的值应该对应前端 请求参数的name属性名,表明哪个请求参数将注入到该property中。
例子
//B.java package One; public class B { int x; int y; int z; public B(){} public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } public int getZ() { return z; } public void setZ(int z) { this.z = z; } }
//index.jsp <html> <body> <jsp:useBean id="b1" class="One.B"> <jsp:setProperty name="b1" property="x" value="1"></jsp:setProperty> <jsp:setProperty name="b1" property="y" value="11"></jsp:setProperty> <jsp:setProperty name="b1" property="z" value="111"></jsp:setProperty> </jsp:useBean> <jsp:useBean id="b2" class="One.B"> </jsp:useBean> <jsp:setProperty name="b2" property="x" value="2"></jsp:setProperty> <jsp:setProperty name="b2" property="y" value="22"></jsp:setProperty> <jsp:setProperty name="b2" property="z" value="222"></jsp:setProperty> <% String str=b1.getX()+":"+b1.getY()+":"+b1.getZ(); String str1=b2.getX()+":"+b2.getY()+":"+b2.getZ(); out.println(str); out.println("<br>"); out.println(str1); %> </body> </html>
总结
jsp:setProperty第一种语法自动匹配,最常见,标签将全部的属性自动的设置到对应的SimpleBean属性中,第4种也可以用,第二种和第三种基本上不用。
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。