关于JSP中setProperty动作元素

来源:互联网 发布:人类返祖现象特征知乎 编辑:程序博客网 时间:2024/06/06 17:03

jsp:setProperty用来设置已经实例化的Bean对象的属性

第一种形式:

<jps:setProperty name = "JavaBean实例名"  property = "*"/>

该形式是设置Bean 属性的快捷方式.在Bean 中属性的名字,类型必须和request对象中的参数名称相匹配。由于表单中传过来的数据类型都是String 类型的,Jsp内在机制会把这些参数转化成Bean属性对应的类型。

property = “*”表示所有名字和Bean属性名字匹配的请求参数都将被传递给相应的属性set方法。

第二种形式:

使用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转换。

第四种形式:

 property = "propertyName" param = "request对象中的参数名"

/>

param指定用哪个请求参数作为Bean属性的值。Bean 属性和request参数的名字可以不同。如果当前请求没有参数,则什么事情也不做,系统不会把null传递给Bean属性的set方法。因此,你可以让Bean自己提供默认属性值,只有当请求参数明确指定了新值时才修改默认属性值。

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>userBean</title></head><body>    <form action="">        请输入圆的半径:<input type="text" name="r">         <input type="submit" value="计算">    </form>     <%-- <%        //参数radius是表单中传过来的   表单输入的值都是string类型  转换为double类型 传给Bean类中对应的属性        String radius = request.getParameter("radius");        double r = 0.0;        if (radius != null && radius.length() != 0) {            r = Double.parseDouble(radius);        }    %>  --%>    <jsp:useBean id="c" class="com.spring.Circle.Circle" scope="request">    </jsp:useBean>    <jsp:setProperty property="*" name="c"/>    <%-- 值value 是JavaBean中属性的值  将bean中radius属性值设置为输入的值    <jsp:setProperty property="radius" name="c" value="<%=r %>"/> --%>    <%--参数param 是表单请求中传过来的--%>    <%-- <jsp:setProperty property="r" name="c" param="radius" />  --%>    圆的周长:<jsp:getProperty property="length" name="c" />    圆的面积:<jsp:getProperty property="area" name="c" /></body></html>
0 0
原创粉丝点击