三、jsp:setProperty Action
语法:
<jsp:setProperty
name="beanInstanceName"
{ property="*" |
property="propertyName" [ param="parameterName" ] |
property="propertyName" value="{string | <%= expression %>}"
}
/>
在前面我们就知道了可以使用 jsp:setProperty 来为一个bean的属性赋值。您可以使用两种方式实现它。其一是,在jsp:useBean后(而不是在之内)使用jsp:setProperty:
<jsp:useBean id="myName" ... />
...
<jsp:setProperty name="myName"
property="someProperty" ... />
在这种方式中,jsp:setProperty 将被执行无论是否已有一个具有相同的id和scope的bean存在。另一种方式是,jsp:setProperty出现在jsp:useBean 元素内,如:
<jsp:useBean id="myName" ... >
...
<jsp:setProperty name="myName"
property="someProperty" ... />
</jsp:useBean>
此种情况下,jsp:setProperty仅在新的对象被实例化时才执行。
以下是四种jsp:setProperty的可用的属性:
属性
用法
name
这是一个必选属性。它指出哪一个bean的属性将被设置。jsp:usebean必须出现在jsp:setProperty之前。
property
这是一个必选属性。表明您将设置哪一个属性。然而,有一个特殊的情况:如果以"*"为值意味着,所有的名称与bean的属性匹配的request参数都将被传递到相应的属性设置方法。
value
这是一个可选属性。它指定被设置的属性的值。字符串的值通过相应的对象或包的标准的valueOf方法将自动的转换为numbers,boolean,Boolean,byte,Byte,char,和Character。例如,boolean或Boolean属性的值“true”将通过Boolean.valueOf方法转化,而,一个int或Integer属性的值“42”将通过Integer.valueOf转化。您不能同时使用value和param属性,但,两个都不用是允许的。
param
这是一个可选属性。它指明了bean的属性应该继承的request的参数。如果当前的request没有这样的一个参数,就什麽也不做:系统并不将null传给设置属性的方法。因此,您可以使用bean的缺省值。例如下面的这段程序执行“将numberOfItems属性设置为任意numItems request参数的值,如果有这样的一个request参数,否则什么也不做。”
<jsp:setProperty name="orderBean"
property="numberOfItems"
param="numItems" />
如果您将value和param同时缺省,这和您将param的名称设为bean的属性名相同一样。您可以通过将name的值设置为”*”和省略value和param来自动的使用与bean的属性相应的request的属性。在这种情况下,服务器将反复的查找可用的属性和request参数来匹配具有相同名字的。
四、jsp:getProperty Action
语法:
<jsp:getProperty name="beanInstanceName" property="propertyName" />
这个属性检索出bean的属性的值并将之转化为一个字符串,然后将之插入到输出。它有两个必选属性:name,在之前用jsp:useBean引入的名称,property,必须被插入值的属性。
在JSP中使用jsp forward Action来实现页面的跳转功能。
语法:
<jsp:forward page="{relativeURL|<%= expression %>}"/> 或
<jsp:forward page="{relativeURL|<%= expression %>}">
<jsp:param name="parameterName"
value="{parameterValue|<%= expression %>}"/>+</jsp:forward>
这个action使您可以将request向前到另外一个页面。它只有一个属性,page。Page应有一个相对的URL组成。这可以是一个静态的值或者是能够在被请求的时候计算得到的值,就如下面两个例子一般:
<jsp:forward page="/utils/errorReporter.jsp"/>
<jsp:forward page="<%= someJavaExpression %>"/>
!supportEmptyParas]>
现在以一个具体例子来说明:在test1.jsp中使用forward使其跳转到test2.jsp页面中。
Test1.jsp
<HTML>
<HEAD>
<TITLE>forward test</TITLE>
!supportEmptyParas]>
</HEAD>
!supportEmptyParas]>
<BODY BGCOLOR="#FFFFFF">
<!--跳转到test2.jsp--!>
<jsp:forward page="/test2.jsp"/>
</BODY>
</HTML>
!supportEmptyParas]>
test2.jsp
<HTML>
<HEAD>
<TITLE> forward test </TITLE>
!supportEmptyParas]>
</HEAD>
!supportEmptyParas]>
<BODY BGCOLOR="#FFFFFF">
<%out.println("这是jsp2.jsp页面产生出的输出");%>
</BODY>
</HTML>
!supportEmptyParas]>
运行test1.jsp,可在浏览器中看见:"这是jsp2.jsp页面产生出的输出"的输出信息。但是如果你在test1.jsp和test2.jsp这两个页面中有参数传递怎么办呢?用get方式吧,不但总的长度有限制,使用现在十分不方便,而且有时候还不安全。其实我们完全可以使用jsp1.1中给forward里提供的para属性就可以解决。现以test3.jsp和test4.jsp来说明。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页