<jsp:setProperty>

13.4 jsp:setProperty动作

   jsp:setProperty用来设置已经实例化的Bean对象的属性,有两种用法。首先,你可以在jsp:useBean元素的外面(后面)使用jsp:setProperty,如下所示:

<jsp:useBean id="myName" ... />
...
<jsp:setProperty name="myName"
property="someProperty" ... />


   此时,不管jsp:useBean是找到了一个现有的Bean,还是新创建了一个Bean实例,jsp:setProperty都会执行。第二种用法是把jsp:setProperty放入jsp:useBean元素的内部,如下所示:

<jsp:useBean id="myName" ... >
...
<jsp:setProperty name="myName"
property="someProperty" ... />
</jsp:useBean>


   此时,jsp:setProperty只有在新建Bean实例时才会执行,如果是使用现有实例则不执行jsp:setProperty。

   jsp:setProperty动作有下面四个属性:

属性说明
namename属性是必需的。它表示要设置属性的是哪个Bean。
propertyproperty属性是必需的。它表示要设置哪个属性。有一个特殊用法:如果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自己提供默认属性值,只有当请求参数明确指定了新值时才修改默认属性值。


  例如,下面的代码片断表示:如果存在numItems请求参数的话,把numberOfItems属性的值设置为请求参数numItems的值;否则什么也不做。

<jsp:setProperty name="orderBean"
property="numberOfItems"
param="numItems" />


   如果同时省略value和param,其效果相当于提供一个param且其值等于property的值。进一步利用这种借助请求参数和属性名字相同进行 自动赋值的思想,你还可以在property(Bean属性的名字)中指定“*”,然后省略value和param。此时,服务器会查看所有的Bean属 性和请求参数,如果两者名字相同则自动赋值。

   下面是一个利用JavaBean计算素数的例子。如果请求中有一个numDigits参数,则该值被传递给Bean的numDigits属性;numPrimes也类似。

   JspPrimes.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>在JSP中使用JavaBean</TITLE>
</HEAD>

<BODY>

<CENTER>
<TABLE BORDER=5>
<TR><TH CLASS="TITLE">
在JSP中使用JavaBean</TABLE>
</CENTER>
<P>

<jsp:useBean id="primeTable" class="hall.NumberedPrimes" />
<jsp:setProperty name="primeTable" property="numDigits" />
<jsp:setProperty name="primeTable" property="numPrimes" />

Some <jsp:getProperty name="primeTable" property="numDigits" />
digit primes:
<jsp:getProperty name="primeTable" property="numberedList" />

</BODY>
</HTML>


   注:NumberedPrimes的代码略。

   13.5 jsp:getProperty动作

    jsp:getProperty动作提取指定Bean属性的值,转换成字符串,然后输出。jsp:getProperty有两个必需的属性, 即:name,表示Bean的名字;property,表示要提取哪个属性的值。下面是一个例子,更多的例子可以在前文找到。

<jsp:useBean id="itemBean" ... />
...
<UL>
<LI>Number of items:
<jsp:getProperty name="itemBean" property="numItems" />
<LI>Cost of each:
<jsp:getProperty name="itemBean" property="unitCost" />
</UL>


   13.6 jsp:forward动作

   jsp:forward动作把请求转到另外的页面。jsp:forward标记只有一个属性page。page属性包含的是一个相对URL。page的值既可以直接给出,也可以在请求的时候动态计算,如下面的例子所示:

<jsp:forward page="/utils/errorReporter.jsp" />
<jsp:forward page="<%= someJavaExpression %>" />


   13.7 jsp:plugin动作

   jsp:plugin动作用来根据浏览器的类型,插入通过Java插件 运行Java Applet所必需的OBJECT或EMBED元素。

   附录:JSP注释和字符引用约定

   下面是一些特殊的标记或字符,你可以利用它们插入注释或可能被视为具有特殊含义的字符。

语法用途
<%-- comment --%> JSP注释,也称为“隐藏注释”。JSP引擎将忽略它。标记内的所有JSP脚本元素、指令和动作都将不起作用。
<!-- comment -->HTML注释,也称为“输出的注释”,直接出现在结果HTML文档中。标记内的所有JSP脚本元素、指令和动作正常执行。
<\% 在模板文本(静态HTML)中实际上希望出现“<%”的地方使用。
%\>在脚本元素内实际上希望出现“%>”的地方使用。
\' 使用单引号的属性内的单引号。不过,你既可以使用单引号也可以使用双引号,而另外一种引号将具有普通含义。
\"使用双引号的属性内的双引号。参见“\'”的说明。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值