Struts标签手册

上传人:飞*** 文档编号:51024394 上传时间:2018-08-12 格式:PDF 页数:23 大小:564.04KB
返回 下载 相关 举报
Struts标签手册_第1页
第1页 / 共23页
Struts标签手册_第2页
第2页 / 共23页
Struts标签手册_第3页
第3页 / 共23页
Struts标签手册_第4页
第4页 / 共23页
Struts标签手册_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《Struts标签手册》由会员分享,可在线阅读,更多相关《Struts标签手册(23页珍藏版)》请在金锄头文库上搜索。

1、Struts标签手册第 1 页 共 23 页谭岚 整理Struts 标签手册您使用过旅游指南吗?它总是能让我们快速的找到目的地。我对此有深刻的印象,希望这篇指南也能使您快速的完成Struts 标签相关的任务。我深入细致的总结了日常使用Struts的一些经验, 感觉 Struts 标签的用途非常广泛并且功能强大,但是学起来还是比较费时间的。我认为学习Struts 标签最好的方式就是参考良好的示例,幸运的是这些示例您可以在下面找到。Struts是 Apache Jakarta 的一个著名的开源项目,目标是为构建基于Java 的 web 应用程序提供一个框架。Struts提供了非常多的标签,依据功能

2、和使用习惯的不同被分到了五个标签库中: Bean Tags:该标签库包含的标签可以用来创建bean、 访问 bean和访问 bean 的属性。同时提供了依据cookies、headers和 parameters的值创建相关bean的能力。HTML Tags: 该标签库包含的标签可以用来创建Struts 输入表单。Logic Tags:该标签库包含的标签可以用来进行逻辑判断、集合迭代和流程控制。Nested Tags:该标签库建立在前三个标签库的基础上,具有前三个标签库的所有功能,只是允许标签间的嵌套。Tiles Tags:该标签库包含的标签可以用来创建tiles 样式的页面。这篇指南主要介绍前

3、三个标签库中的标签。如果您对后两类标签也感兴趣可以查阅参考资料中的Struts 的用户指南。bean:cookie cookie 最早是由Netscape公司提出来的,用来存储客户的少量状态信息。bean: cookie 标签取回请求中名称为name 的 cookie 的值。如果没有指定multiple 属性则依据刚取回的值创建一个Cookie 类型的 bean。如果指定了multiple 属性则依据刚取回的值创建一个 Cookie 类型的数组。 然后用 id 属性值将Cookie 或 Cookie 绑定到 page 作用域中(这种绑定是为了其它标签能够使用该值),并创建对应的scriptin

4、g 变量 (这种变量是为了JSP脚本能够使用该值)。下面的代码片段示例了如何使用bean:cookie 标签读取名为JSESSIONID 的 cookie 的值,并且使用了两种方式进行了输出:这个cookie 的名称是 ,值为 。 “); Struts标签手册第 2 页 共 23 页谭岚 整理% bean:define bean: define 标签在 toScope(如果没有指定值就使用page作用域 )指定的作用域中创建一个新属性,同时创建一个scripting 变量。我们可以通过id 值使用它们。新创建的属性可以由其它标签使用,而新创建的scripting 变量可以由JSP脚本使用。我们

5、可以使用三种方式为新创建的属性和scripting 变量赋值:通过该标签的name、property 和 scope取回值,并且保持类型的一致性,除非取回的值为 Java的原始类型,这时会使用适合的包装器类对这些值进行包装。通 过 该 标 签 的value指 定 值 , 这 时 新 创 建 的 属 性 和scripting变 量 的 类 型 为java.lang.String。通 过 在 该 标 签 的 体 中 嵌 入 值 , 这 时 新 创 建 的 属 性 和scripting变 量 的 类 型 为java.lang.String。下面的代码片段示例了如何使用bean:define 标签创建

6、新属性values 和新 scripting 变量values,它将 listForm 中 persons的值取出来赋给values: 下面给出 ListForm 的代码片段以帮助您更好的理解,其中 Person 是一个只有id 和 name两个属性的简单bean:public class ListForm extends ActionForm private List persons = null; public List getPersons() return persons; public void setPersons(List persons) this.persons = pers

7、ons; public void reset(ActionMapping mapping, HttpServletRequest request) persons = null; 下面的代码片段示例了logic:iterate 标签如何使用bean:define 标签创建的新属性values: 下面的代码片段示例了JSP脚本如何使用bean:define 标签创建的新scripting 变量 values: “); Struts标签手册第 3 页 共 23 页谭岚 整理 % bean:header bean: header标签取回请求中名称为name的 header的值。如果没有指定multi

8、ple 属性则依据刚取回的值创建一个String 类型的 bean。 如果指定了multiple 属性则依据刚取回的值创建一个 String 类型的数组。 然后用 id 属性值将String 或 String 绑定到 page 作用域中 (这种绑定是为了其它标签能够使用该值),并创建对应的scripting 变量 (这种变量是为了JSP脚本能够使用该值 )。下面是我的浏览器发送的header 的内容,这些内容和浏览器有关,因此您的浏览器发送的内容可能和下面列出的不同。不过这没有关系,因为要理解bean:header标签您只要对这些内容有一个大概的认识就足够了。accept: */* accep

9、t-language: zh-cn accept-encoding: gzip, deflate user-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) host: localhost:8080 connection: Keep-Alive 下面的代码片段示例了如何使用bean:header标签读取名为User-Agent 的 header的值, 并且使用了两种方式进行了输出:您的浏览器是 。 “); % bean:include bean:include 标签对指定url(由

10、 forward、href 或 page确定 )处的资源做一个请求,将响应 数据作为一个String 类型的 bean 绑定到 page 作用域,同时创建一个scripting 变量。我们可以通过 id 值访问它们。下面的代码片段示例了bean:include 标签的用法, 其中 include.txt 文件包含要include 的 内容,然后将这些内容输出: Struts标签手册第 4 页 共 23 页谭岚 整理bean:message bean:message标签用来从指定的locale 中取回国际化的消息并输出,在这个过程中我们还可以传递五个以内的参数。message key 可以通过k

11、ey 直接指定,也可以通过name 和property 间接的指定。bean:message标签有两种指定message key 的方式,一是通过key 属性直接指定;二是通过 name 和 property 属性间接的指定, 其中 message key是在 message resources文件中定义的。我们可以在struts-config.xml文件中使用 来设置message resources 文件。为了介绍该标签我使用了三个message resources 文件,三个文件的名字分别为Resources.properties、Resources_en.properties和 Res

12、ources_zh.properties。在 struts-config.xml 文件中的设置 (这里不用设置三个,struts 会依据locale 自动找到对应的文件)如下:三个 message resources文件中定义的message key为:resource=Resources.properties. from=Resources.properties. from=Resources_en.properties. from=Resources_zh.properties. 下面的代码片段示例了bean:message标签的用法 : English Chinese 上面的代码中含有改

13、变locale 的两个 html:link 标签,要使它们工作您的struts-config.xml 文件中必须含有下面定义的form 和 action: Struts标签手册第 5 页 共 23 页谭岚 整理在不同的locale 下我们得到了如下的两个结果:在 locale 为 zh 时的结果:Resources_zh.properties. Resources.properties. 在 locale 为 en 时的结果:Resources_en.properties. Resources.properties. 让我们来看一下在locale 为zh 时如何得到的是上面的结果。因为loca

14、le 为 zh 所以先找 Resources_zh.properties 这个文件从中得到form 键的值。而 也会先找Resources_zh.properties 这个文件但这次没有找到resource 键,这时 Struts会到 Resources.properties 这个文件中找, 很幸运这里找到了。如果还没有找到,或message resource文件不存在就会抛出异常。当locale 为 en 时类似,您可以自己试试。bean:page bean: page标签将页上下文中的application 、config、request、response 或 session取出, 然后用

15、 id 属性值将它们绑定到page 作用域中 (这种绑定是为了其它标签能够使用该值),并创建对应的scripting 变量 (这种变量是为了JSP脚本能够使用该值)。下面的代码片段示例了bean:page标签取出 response, 然后使用 bean:write 标签将 response的 characterEncoding 和 contentType 属性输出:“); out.println(contentType+“); % 您可以用和上面类似的代码访问application 、config、request 或 session中的任何一个对象。bean:parameter bean: p

16、arameter标签取回请求中的参数值。如果没有指定multiple 属性则依据刚取回的值创 建一个 String 类型的 bean。如果指定了multiple 属性则依据刚取回的值创建一个String 类Struts标签手册第 6 页 共 23 页谭岚 整理型的数组。 然后用 id 属性值将String 或 String 绑定到 page 作用域中(这种绑定是为了其它标签能够使用该值),并创建对应的scripting 变量 (这种变量是为了JSP脚本能够使用该值)。下面的两个代码片段使用相同的url 传递参数, url 的形式为http:/127.0.0.1:8080/struts- demo/parameter.jsp?param=1 % “); out.println(is.getClass()+“); % Struts标签手册第 7 页 共 23 页谭岚 整理bean:size bean:size 标签创建一个java.lang.Integer 类型的bean,这个bean 的值为该标签指定

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号