精通struts技术第二章(4)

标准Actions<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


JSP标准Actions是预先定义的标签。这标签很容易用来封装action。

在JSP中有两种类型的标准action。第一种:JavaBean,第二种:由另外的标准action组成。

JavaBeans有三种相应的标签设置:<useBean>, <setProperty>和<getProperty>.。

在定义三个标签后,我们会创建一个例子:

 

<jsp:useBean>


 <jsp:useBean>是 JavaBean的标准行为。它通过ID号和范围来实例化一个JavaBean 。

表2.4对<jsp:useBean>的属性进行说明,表2.5定义了行为的范围。<jsp:useBean>行为非常灵活如果执行到<useBean>,将去寻找是否存在相同ID和scope,如果实例不存在,它会创建一个,把命名空间和ID号关联并存储起来。语法如下:

<jsp:useBean id="name"

scope="page|request|session|application" tpeSpec>

body

</jsp:useBean>

typeSpec ::=class="className" |

class="className" type="typeName" |

type="typeName" class="className" |

beanName="beanName" type="typeName" |

type="typeName" beanName="beanName" |

type="typeName"

 

表2.4<jsp:useBean>属性:

属性

定义

id

这个键关联指定范围的实例化对象。这个键大小写敏感。这个id属性的键和page.getAttribute方法取得的是一样。

Scope

 

对象的生命周期。范围选项page, request, session, and application.在表2.5中定义。

 

表 2.5: <jsp:useBean>的范围值:

定义

page

只能在被创建的页面中使用。当前页面完成工作时,引用的对象会被释放掉。

request

只为同一个请求服务。只在请求中实例化,也包括转向请求。所有引用的对象在请求完成时被释放。

session

只处理有相同session的请求,引用的对象也是在session中创建的。当session终止时引用对象被释放。

Application

 

在相同的WEB应用中被使用。当JSP/Servlet容器关闭,引用对象被释放。

 

<jsp:setProperty>


用于设置bean属性的值。它要设置的属性所在的对象必须已经存在。

<jsp:setProperty>语法如下:

<jsp:setProperty name="beanName" propexpr />

name属性时bean的实例化名称。

property="*" |

property="propertyName" |

property="propertyName" param="parameterName" |

property="propertyName" value="propertyValue"

 

 

 

 

 

 

 

表2.6<jsp:setProperty>的属性列表:

属性

说明

name

是通过<jsp:useBean>实例化的bean

property

 

设置一个属性的值。如果你对propertyName设置“*“,会取出ServletRequest中所有的参数集合。匹配参数名值类型属性名和设置方法类型。并设置每一个匹配的属性的值。如果参数值为空,相关的属性是左未更改的。.

param

你要设置值的属性名称。

value

对bean的属性赋值

.

<jsp:getProperty>


用来获取实例化的bean的属性值,转换成java.lang.String类型并产生输出。

在使用前bean必须被实例化。语法如下:

<jsp:getProperty name="name" property="propertyName" />

表2.7介绍了<jsp:getProperty>的属性:

属性

说明

name

获取实例化的bean的名称,在<jsp:useBean>中定义

Property

 

从实例化的bean中获取值的属性的名称

 

 

一个JavaBean例子


为了学习如何使用JavaBean,让我们创建一个例子。这个例子实现一个简单的计数器JavaBean。这个计数器有简单的int类型的count属性。它用来统计当前bean属性被访问的次数。另外它也包含了相应的设置获取属性的方法。

表2.11为Counter bean代码:Counter.java.

----------------------------------------------------------------

package chapter2;

public class Counter {

int count = 0;

39

 

public Counter() {

}

public int getCount() {

count++;

return count;

}

public void setCount(int count) {

this.count = count;

}

}

----------------------------------------------------------

让我们来看访问JavaBean的JSP页面:

列表 2.12  counter.jsp.

-------------------------------------------------------------

<!-- Set the scripting language to java -->

<%@ page language="java" %>

<HTML>

<HEAD>

<TITLE>Bean Example</TITLE>

</HEAD>

<BODY>

<!-- Instantiate the Counter bean with an id of "counter" -->

<jsp:useBean id="counter" scope="session"

class="chapter2.Counter" />

<%

// write the current value of the property count

out.println("Count from scriptlet code : "

+ counter.getCount() + "<BR>");

%>

<!-- Get the the bean’s count property, -->

<!-- using the jsp:getProperty action. -->

Count from jsp:getProperty :

<jsp:getProperty name="counter" property="count" /><BR>

</BODY>

</HTML>

----------------------------------------------------------------------------------------------

Counter.jsp有四个JSP组件。第一个:告诉JSP容器脚本语言为:java

<%@ page language="java" %>

第二步:用<jsp:useBean>实例化一个Counter对象,id为counter,范围为session。

现在我们可以在JSP中引用名称为counter的实例。下面的代码实例化Counter:

<jsp:useBean id="counter" scope="session" class="chapter2.Counter" />

有两个种方法指明如何获取当前bean属性的值。第一种是在JSP脚本中使用一个方法访问bean属性。它是通过访问bean的ID并调用getCount()得到的。脚本代码如下:

<%

// write the current value of the property count

out.println("Count from scriptlet code : "

+ counter.getCount() + "<BR>");

%>

第二种是通过<jsp:getProperty>取得当前bean属性的值。

访问对应的属性,绑定它的属性值并输出到HTML中。

<!-- Get the bean’s count property, -->

<!-- using the jsp:getProperty action. -->

Count from jsp:getProperty :

<jsp:getProperty name="counter" property="count" /><BR>

 

当你运行Counter.jsp,你会发现下一次的结果值大于前一次的。这是因为每次访问count属性都会调用getCount()方法,所以每次count的值都会增加。

编译Counter.java,把类文件复制到:

<CATALINA_HOME>/wileyapp/WEB-INF/classes/chapter2/目录下,复制Counter.jsp到

<CATALINA_HOME>/wileyapp/ 目录。在浏览器中输入地址:http://localhost:8080/wileyapp/counter.jsp

 

<jsp:param>


提供参数和值。

<jsp:include>,

<jsp:forward>, and <jsp:plugin>

<jsp:param name="name" value="value"/>

 

表2.8说明了<jsp:param>的属性:

属性

说明

name

引用的参数名称

时间: 2024-11-10 12:03:05

精通struts技术第二章(4)的相关文章

&amp;gt; 第二章 NGWS Runtime 技术基础(rainbow 翻译) (转自重粒子空

<<展现C#>> 第二章 NGWS Runtime 技术基础(rainbow 翻译)   出处:http://www.informit.com/matter/ser0000001/chapter1/ch02.shtml 正文: 第二章  NGWS  runtime 技术基础     既然你已经具有了C#全面的印象,我也想让你了解NGWS runtime的全貌.C#依靠由NGWS提供的运行时:因此,有必要知道运行时如何工作,以及它背后所蕴含的概念.    所以,这一章分为两部分--它

第二章、进程的描述与控制

第二章.进程的描述与控制 2.1 前趋图和程序执行 2.1.1 前趋图 概念: 所谓前趋图:指一个有向无循环图(DAG),它用于描述进程之间执行的先后顺序. 2.1.2 程序顺序执行 特征: 顺序性 封闭性:指程序在封闭的环境中运行,程序运行时独占全机资源,资源的状态只有本程序才能改变,程序一旦开始执行,其执行结果不受外界因素影响 可再现性:只要条件相同还会得到相同的执行结果. 2.1.3 程序并发执行 特征: 间断性 失去封闭性 不可在现性 2.2进程的描述 2.2.1 进程的定义和特征 定义

Programming MS Office 2000 Web Components第二章第二节

web 第二章第二节 电子表格组件的高级功能 我们已经讨论了电子表格组件的大部分基本功能,现在让我们转向一些高级功能.大部分的这些高级功能Excel2000都不包含,因为这些是组件专门需要的特殊功能.而那些Excel2000中存在的功能,在电子表格组件中也被增强,使得可以提供一些新的功能. 属性绑定和实时数据 "属性绑定"是电子表格组件中最新奇的新功能之一,它是指控件能够将同一个web页面上其它对象的属性和方法用作单元值或公式参数的能力.电子表格控件使用标准的COM机制来实现绑定到属性

《.net编程先锋C#》第二章 理论基础-公用语言 运行环境(转)

编程 第二章 理论基础-公用语言 运行环境既然你已经具有了C#全面的印象,我也想让你了解NGWS runtime的全貌.C#依靠由NGWS提供的运行时:因此,有必要知道运行时如何工作,以及它背后所蕴含的概念.所以,这一章分为两部分--它们是所有的概念和使用的基础.两部分的内容虽然有些重叠,但它有助于加深理解正在学习的概念. 2.1 NGWS RuntimeNGWS和NGWS Runtime为你提供了一种运行时环境.该运行时管理执行代码,并提供了使编程更容易的服务.只要你的编译器支持这种运行时,你

经典中的品味:第二章 C++基本的对象,类型和值(上)

2.1 一个简单问候的例子 最常见的就是keyBorad input(键盘输入).从HelloWorldd的输出,我们也想得到用户的输入.通常,实行中的程序会给它的输入产生输出.例如,输入你的名字,输出 一句问候.有时候它就在身边,像我最爱的苹果手机一样.人机交互就是那么简单~ 图2.1.1 人机交互(.net) 回 到技术点,为了读取用户输入的数据,我们需要在计算机内存中某个地方放置读取所需的内容.这就是对象(Class).对象是什么,对象时一个某种类型的内 存区域.其中类型则确定了对象的信息

《张成功项目管理记(第2版)》一第二章 项目管理之初体验

第二章 项目管理之初体验 张成功项目管理记(第2版) 首次与IT项目管理知识体系亲密接触 下午一上班,张成功就迫不及待地敲开了资深项目经理李全才办公室的门.还没等张成功开口,李全才就笑着说:"我听公司领导说,你被委任为国内某省全省大集中电子政务行政办公系统建设项目的项目经理,恭喜你啊.我知道,你今天来找我,一定是想咨询如何管理这个项目,对吧?" 张成功点了点头,李全才示意张成功坐在他办公桌前的座椅上. 令张成功万万没有想到的是,只见李全才从抽屉里拿出一本装订略显粗糙的书(张成功定睛一看

《秩序之美——网页中的网格设计》——第二章 网格的基本概念

第二章 网格的基本概念 在为各式多媒体工作的经验丰富的平面设计师中,众所周知的是:使用网格进行设计具有多种优势.其中主要的优势有必要在这里重述一下. 网格为信息的展示增添秩序.连续性和和谐性. 网格可向读者预示出信息的所在,更有助于信息的交流. 在保持与原先展示内容总体一致的前提下,网格可使添加新内容变得更容易. 网格促使各个设计方式彼此协作而不是相互削弱. 这些只是你将读到的支持网格设计观点的一部分内容,但是到目前为止,它们已被主要写入网格如何有利于传统平面设计的读物中.而让我感到困惑的事实是

深入理解bootstrap框架之第二章整体架构_jquery

一. 整体架构 1. CSS-12栅格系统 把网页宽度均分为12等分(保留15位精度)--这是bootstrap的核心功能. 2.基础布局组件 包括排版.按钮.表格.布局.表单等等. 3.jQuery bootstrap插件的基础 4.响应式设计 兼容多个终端.这是bootstrap的终极理念. 5.css插件 提供丰富的样式. 6.js插件 二. 栅格系统 1.基本实现过程 定义容器的大小--跳转边距--媒询 有以下要求: (1)一行(row)数据必须包含在.container中. .cont

《微软System Center 2012 R2私有云部署实战》——第二章 微软私有云选型2.1 服务器选型

第二章 微软私有云选型 私有云和虚拟化是相辅相成的,拥有虚拟化的私有云才能做到更加灵活.在部署微软私有云之前,我们要做的第一件事情是对运行这套私有云的底层硬件和软件设备进行选型.面对市面上如此众多的硬件设备,我们应该遵循何种标准来选择,也是有多重考量的.4核.8核,还是16核?2颗.4颗又有什么门道?存储是用iSCSI还是光纤或者直连,网卡用吉比特(千兆)还是10吉比特(万兆)?操作系统是Windows Server 2008 R2 SP1还是Windows Server 2012 R2?选择理