- 浏览: 95965 次
- 性别:
- 来自: 南京
文章分类
最新评论
bean:cookie
cookie最早是由Netscape公司提出来的,用来存储客户的少量状态信息。如果您对cookie的具体细节感兴趣可以查阅参考资料中的cookie spec。
bean:cookie标签取回请求中名称为name的cookie的值。如果没有指定multiple属性则依据刚取回的值创建一个Cookie类型的bean。如果指定了multiple属性则依据刚取回的值创建一个Cookie[]类型的数组。然后用id属性值将Cookie或Cookie[]绑定到page作用域中(这种绑定是为了其它标签能够使用该值),并创建对应的scripting变量(这种变量是为了JSP脚本能够使用该值)。
下面的代码片段示例了如何使用bean:cookie标签读取名为JSESSIONID的cookie的值,并且使用了两种方式进行了输出:
<logic:present cookie="JSESSIONID"> <bean:cookie id="jSession" name="JSESSIONID"/> <!-- 其它标签通过绑定到page作用域中的属性使用该值 --> 这个cookie的名称是<bean:write name="jSession" property="name"/>, 值为<bean:write name="jSession" property="value"/>。<br/> <!-- JSP脚本通过scripting变量使用该值 --> <% String name = jSession.getName(); String value = jSession.getValue(); out.println("这个cookie的名称是"+name+",值为"+value+"。 <br/>"); %> </logic:present>
bean:define
bean:define标签在toScope(如果没有指定值就使用page作用域)指定的作用域中创建一个新属性,同时创建一个scripting变量。我们可以通过id值使用它们。新创建的属性可以由其它标签使用,而新创建的scripting变量可以由JSP脚本使用。
我们可以使用三种方式为新创建的属性和scripting变量赋值:
- 通过该标签的name、property和scope取回值,并且保持类型的一致性,除非取回的值为Java的原始类型,这时会使用适合的包装器类对这些值进行包装。
- 通过该标签的value指定值,这时新创建的属性和scripting变量的类型为java.lang.String。
- 通过在该标签的体中嵌入值,这时新创建的属性和scripting变量的类型为java.lang.String。
下面的代码片段示例了如何使用bean:define标签创建新属性values和新scripting变量values,它将listForm中persons的值取出来赋给values:
<bean:define id="values" name="listForm" property = "persons" type="java.util.List"/>
下面给出ListForm的代码片段以帮助您更好的理解,其中Person是一个只有id和name两个属性的简单bean:
public class ListForm extends ActionForm { private List<Person> persons = null; public List<Person> getPersons() { return persons; } public void setPersons(List<Person> persons) { this.persons = persons; } public void reset(ActionMapping mapping, HttpServletRequest request) { persons = null; } }
下面的代码片段示例了logic:iterate标签如何使用bean:define标签创建的新属性values:
<logic:iterate id="person" name="values"> <bean:write name="person" property="id"/><br/> </logic:iterate>
下面的代码片段示例了JSP脚本如何使用bean:define标签创建的新scripting变量values:
<% Person p = new Person(); for(int i=0;i<values.size();i++){ p = (Person)values.get(i); out.println(p.getId()); out.println("<br/>"); } %>
bean:header
bean:header标签取回请求中名称为name的header的值。如果没有指定multiple属性则依据刚取回的值创建一个String类型的bean。如果指定了multiple属性则依据刚取回的值创建一个String[]类型的数组。然后用id属性值将String或String[]绑定到page作用域中(这种绑定是为了其它标签能够使用该值),并创建对应的scripting变量(这种变量是为了JSP脚本能够使用该值)。
下面是我的浏览器发送的header的内容,这些内容和浏览器有关,因此您的浏览器发送的内容可能和下面列出的不同。不过这没有关系,因为要理解bean:header标签您只要对这些内容有一个大概的认识就足够了。
accept: */* accept-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的值,并且使用了两种方式进行了输出:
<logic:present header="User-Agent"> <!-- 其它标签通过绑定到page作用域中的属性使用该值 --> 您的浏览器是<bean:header id="userAgent" name="User-Agent"/> <bean:write name="userAgent"/>。<br/> <!-- JSP脚本通过scripting变量使用该值 --> <% out.println("您的浏览器是"+userAgent+"。<br/>"); %> </logic:present>
bean:include
bean:include标签对指定url(由forward、href或page确定)处的资源做一个请求,将响应数据作为一个String类型的bean绑定到page作用域,同时创建一个scripting变量。我们可以通过id值访问它们。
下面的代码片段示例了bean:include标签的用法,其中include.txt文件包含要include的内容,然后将这些内容输出:
<bean:include id="value" page="/include.txt"/> <!-- 其它标签通过绑定到page作用域中的属性使用该值 --> <bean:write name="value"/><br/> <!-- JSP脚本通过scripting变量使用该值 --> <% out.println(value); %>
bean:message
bean:message标签用来从指定的locale中取回国际化的消息并输出,在这个过程中我们还可以传递五个以内的参数。message key可以通过key直接指定,也可以通过name和property间接的指定。
bean:message标签有两种指定message key的方式,一是通过key属性直接指定;二是通过name和property属性间接的指定,其中message key是在message resources文件中定义的。
我们可以在struts-config.xml文件中使用<message-resources>来设置message resources文件。
为了介绍该标签我使用了三个message resources文件,三个文件的名字分别为Resources.properties、Resources_en.properties和Resources_zh.properties。在struts-config.xml文件中的设置(这里不用设置三个,struts会依据locale自动找到对应的文件)如下:
<message-resources parameter="Resources" />
三个message resources文件中定义的message key为:
<!-- Resources.properties --> resource=Resources.properties. from=Resources.properties. <!-- Resources_en.properties --> from=Resources_en.properties. <!-- Resources_zh.properties 因为文件的编码被限制为ISO8859所以要有汉字必须用jdk的native2ascii提前转换 --> from=Resources_zh.properties.
下面的代码片段示例了bean:message标签的用法:
<bean:message key="from"/><br/> <bean:message key="resource"/><br/> <html:link action="/locale?language=en">English</html:link> <html:link action="/locale?language=zh">Chinese</html:link>
上面的代码中含有改变locale的两个html:link标签,要使它们工作您的struts-config.xml文件中必须含有下面定义的form和action:
<form-bean name="localeForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="language" type="java.lang.String" /> <form-property name="country" type="java.lang.String" /> <!--action成功后要跳到那里--> <form-property name="page" type="java.lang.String" initial="/message.jsp"/> </form-bean> <action path="/locale" type="org.apache.struts.actions.LocaleAction" name="localeForm" scope="request"> </action>
在不同的locale下我们得到了如下的两个结果:
在locale为zh时的结果: Resources_zh.properties. Resources.properties. 在locale为en时的结果: Resources_en.properties. Resources.properties.
让我们来看一下在locale为zh时如何得到的是上面的结果。因为locale为zh所以<bean:message key="from"/><br/>先找Resources_zh.properties这个文件从中得到form键的值。而<bean:message key="resource"/><br/>也会先找Resources_zh.properties这个文件但这次没有找到resource键,这时Struts会到Resources.properties这个文件中找,很幸运这里找到了。如果还没有找到,或message resource文件不存在就会抛出异常。当locale为en时类似,您可以自己试试。
bean:page
bean:page标签将页上下文中的application、config、request、response 或 session取出,然后用id属性值将它们绑定到page作用域中(这种绑定是为了其它标签能够使用该值),并创建对应的scripting变量(这种变量是为了JSP脚本能够使用该值)。
下面的代码片段示例了bean:page标签取出response,然后使用bean:write标签将response的characterEncoding和contentType属性输出:
<bean:page id="res" property="response"/> <!-- 其它标签通过绑定到page作用域中的属性使用该值 --> <bean:write name="res" property="characterEncoding"/><br/> <bean:write name="res" property="contentType"/><br/> <!-- JSP脚本通过scripting变量使用该值 --> <% String characterEncoding = res.getCharacterEncoding(); String contentType = res.getContentType(); out.println(characterEncoding+"<br/>"); out.println(contentType+"<br/>"); %>
您可以用和上面类似的代码访问application、config、request 或 session中的任何一个对象。
bean:parameter
bean:parameter标签取回请求中的参数值。如果没有指定multiple属性则依据刚取回的值创建一个String类型的bean。如果指定了multiple属性则依据刚取回的值创建一个String[]类型的数组。然后用id属性值将String或String[]绑定到page作用域中(这种绑定是为了其它标签能够使用该值),并创建对应的scripting变量(这种变量是为了JSP脚本能够使用该值)。
下面的两个代码片段使用相同的url传递参数,url的形式为http://127.0.0.1:8080/struts-demo/parameter.jsp?param=1¶m=2¶m=3。前面的代码片段中没有指定multiple属性,因此p是String类型而且仅仅读取了参数的第一个值。后面的代码片段中指定了multiple属性的值,因此ps是String[]类型的包含所有参数的值。
<bean:parameter id="p" name="param"/> <bean:write name="p"/>
<bean:parameter id="ps" multiple="true" name="param"/> <logic:iterate id="p" name="ps"> <bean:write name="p"/><br/> </logic:iterate>
bean:resource
bean:resource标签取回指定的web应用程序的资源,以InputStream或String的形式保存到page作用域中并且创建scripting变量。采用什么形式取决于标签的input属性,如果指定input则以InputStream的形式保存,如果没有指定input则以String的形式保存。
下面的两个代码片段示例了bean:resource标签,其中resource.txt是要使用的资源文件。前面的代码片段中没有指定input属性,因此以String的形式处理资源文件,bean:write标签输出资源文件的内容。后面的代码片段中指定了input属性的值,因此以InputStream的形式使用资源文件,两个bean:write标签分别输出InputStream对象的实例名(如java.io.ByteArrayInputStream@16dadf9)和类名(如class java.io.ByteArrayInputStream)。
<bean:resource id="str" name="/resource.txt"/> <!-- 其它标签通过绑定到page作用域中的属性使用该值 --> <bean:write name="str"/><br/> <!-- JSP脚本通过scripting变量使用该值 --> <% out.println(str+"<br/>"); %>
<bean:resource id="is" input="true" name="/resource.txt"/> <!-- 其它标签通过绑定到page作用域中的属性使用该值 --> <bean:write name="is"/><br/> <bean:write name="is" property="class"/> <!-- JSP脚本通过scripting变量使用该值 --> <% out.println(is+"<br/>"); out.println(is.getClass()+"<br/>"); %>
bean:size
bean:size标签创建一个java.lang.Integer类型的bean,这个bean的值为该标签指定的Collection或Map中所含元素的个数。 这可以和logic:iterate标签配合使用,因为logic:iterate标签不能得到所叠代的集合的元素的个数,这有时候很不方便。
下面的代码片段示例了bean:size标签取出persons中还有元素的个数,其中listForm和persons的定义参见bean:define标签部分:
<logic:notEmpty name="listForm" property = "persons"> <bean:size id="size" name="listForm" property = "persons"/> <bean:write name="size"/> </logic:notEmpty>
bean:struts
bean:struts标签取回Struts的内部对象formBean、forward或mapping的值,然后用id绑定到page作用域中(这种绑定是为了其它标签能够使用该值),并创建对应的scripting变量(这种变量是为了JSP脚本能够使用该值)。
下面的代码片段示例了bean:struts标签取出listForm对象,让我们先来看一下listForm的定义在读代码:
<!-- listForm的定义<form-bean name="listForm" type="org.solo.struts.form.ListForm" /> --> <bean:struts id="listFormBean" formBean="listForm"/> name:<bean:write name="listFormBean" property="name"/><br/> type:<bean:write name="listFormBean" property="type"/><br/> dynamic:<bean:write name="listFormBean" property="dynamic"/><br/>
上面代码运行的结果为:
name:listForm type:org.solo.struts.form.ListForm dynamic:false
bean:write
bean:write标签将指定的bean的属性值写到当前的JspWriter中,并且可以对输出进行格式化。
下面的代码片段示例了bean:write标签输出User-Agent:
<logic:present header="User-Agent"> <bean:header id="header" name="User-Agent"/> <bean:write name="header"/> </logic:present>
下面的代码片段示例了bean:write标签格式化输出当前日期,其中now是在DataForm中定义的一个java.util.Date类型的域(值为new Date()),format.date.standard是在资源文件中的一个键(format.date.standard=yyyy-MM-dd):
<bean:define id="date" name="dataForm" property="now"/> <br/><bean:write name="date"/> <br/><bean:write name="date" format="MM/dd/yyyy"/> <br/><bean:write name="date" formatKey="format.date.standard"/>
上面代码运行的结果为:
Sun Jun 04 17:04:05 CST 2006 06/04/2006 2006-06-04
发表评论
-
规范的模板化项目架构管理
2012-05-03 23:31 729总在寻找项目开发简单化、标准化、统一化的开发管理方法,在项目 ... -
Java的ftp上传下载工具
2012-04-05 22:17 1601自己写的利用apache的net包写的ftp的上传、下 ... -
SmartGWT学习注意事项(一)
2012-03-31 20:42 1440首先表明,我 ... -
J2ME程序开发全方位基础讲解汇总
2007-08-03 14:19 548一、J2ME中需要的Java基础知识现在有大部分人,都是从零开 ... -
使用J2ME技术开发RPG游戏
2007-08-03 14:24 511RPG(角色扮演游戏)是手机游戏中的一类主要类型,也是相对来说 ... -
移动视频: QuickTime for Java API 入门
2007-08-05 12:45 558在 Java 平台上创建 iPod 视频内容 ... -
技术交流:QuickTime流媒体和Java(图)
2007-08-05 12:46 586这并不是即将问世的Quic ... -
JMF下载安装与支持格式
2007-08-05 12:47 817JMF开发进度不是很快,所以目前还是比较薄弱。 JMF,全名 ... -
搭建J2ME开发环境
2007-08-05 12:48 528由于WTK并没有提供代码编辑的功能,因此本文讲述如何使用Ecl ... -
JMF系统介绍
2007-08-09 15:18 617一.简介 1.1JMF 体系结构 ... -
Experiments in Streaming Content in Java ME(一)
2007-08-13 13:43 549Since my book on Mobile Media A ... -
Experiments in Streaming Content in Java ME(二)----Creating an RTSP Protocol Handler
2007-08-13 13:44 1406Recall that RTSP is the actual ... -
Experiments in Streaming Content in Java ME(三)-----Back to RTPSourceStream and StreamingDataSource
2007-08-13 13:46 992With the protocol handler in pl ... -
java中文件操作大全
2007-08-22 15:40 525一.获得控制台用户输入的信息 /***//**获得控 ... -
Pocket PC、Pocket PC Phone、Smartphone的区别
2007-08-23 16:59 601首先说明几个概念: 1、什么是Pocket PC?Pocket ... -
Struts配置文件详解(来自csdn)
2007-11-30 08:35 466Struts应用采用两个基于X ... -
jBPM开发入门指南(5)
2007-11-30 08:45 454jBPM开发入门指南(5) 前篇说起要讲在JBPM中实现用 ... -
jBPM开发入门指南(4)
2007-11-30 08:48 529jBPM开发入门指南(4) 7 jBPM 的客户端 ... -
jBPM开发入门指南(3)
2007-11-30 08:51 5495 安装 jBPM 的 Eclipse 开发插件 有 ... -
jBPM开发入门指南(2)
2007-11-30 08:52 5454 数据库初始化 jBPM 需要数据库支持, jBPM ...
相关推荐
jsp使用自定义标签taglib分页系列——完整例子(其中struts控件和包我没有加入,需要自己加入)
第三部分 构建视图——标签和结果 第6章 构建视图——标签 108 6.1 入门 108 6.1.1 ActionContext和OGNL 109 6.1.2 虚拟对象ValueStack 111 6.2 Struts 2标签概要 113 6.2.1 Struts 2标签API语法 113 6.2.2 使用OGNL...
第3章 struts 2标签库详解与ajax技术应用 103 3.1 struts 2主题与模板 103 3.2 struts 2控制标签详解 105 3.2.1 if/elseif/else标签详解 105 3.2.2 iterator标签详解 106 3.2.3 append标签详解 108 3.2.4 ...
5.1 Struts标签的使用方法 59 5.2 表单标签的共同属性 60 5.3 form标签 62 5.4 textfield、password、hidden标签 63 5.5 submit标签 65 5.6 reset标签 65 5.7 label标签 66 5.8 head标签 66 5.9 textarea标签 66 ...
9.4.1 如何使用Struts标签 127 9.4.2 HTML标签 128 9.4.3 Bean标签 134 9.4.4 Logic标签 136 9.4.5 Nested标签 137 9.5 小结 138 第10章 新一代的Struts 2 139 10.1 Struts 2框架的特点 140 10.2 ...
16.1、Struts标签库简介 16.2、Bean标签 16.2.1、<bean:define>标签 16.2.2、<bean:size>标签 16.2.3、资源访问标签 16.2.4、<bean:write>标签 16.2.5、<bean:include>标签 16.2.6、<bean:resource>...
16.1、Struts标签库简介 16.2、Bean标签 16.2.1、<bean:define>标签 16.2.2、<bean:size>标签 16.2.3、资源访问标签 16.2.4、<bean:write>标签 16.2.5、<bean:include>标签 16.2.6、<bean:resource>标签 ...
16.1、Struts标签库简介 16.2、Bean标签 16.2.1、<bean:define>标签 16.2.2、<bean:size>标签 16.2.3、资源访问标签 16.2.4、<bean:write>标签 16.2.5、<bean:include>标签 16.2.6、<bean:resource>...
16.1、Struts标签库简介 16.2、Bean标签 16.2.1、<bean:define>标签 16.2.2、<bean:size>标签 16.2.3、资源访问标签 16.2.4、<bean:write>标签 16.2.5、<bean:include>标签 16.2.6、<bean:resource>标签 ...
16.1、Struts标签库简介 16.2、Bean标签 16.2.1、<bean:define>标签 16.2.2、<bean:size>标签 16.2.3、资源访问标签 16.2.4、<bean:write>标签 16.2.5、<bean:include>标签 16.2.6、<bean:resource>标签 ...
16.1、Struts标签库简介 16.2、Bean标签 16.2.1、<bean:define>标签 16.2.2、<bean:size>标签 16.2.3、资源访问标签 16.2.4、<bean:write>标签 16.2.5、<bean:include>标签 16.2.6、<bean:resource>...
16.1、Struts标签库简介 16.2、Bean标签 16.2.1、<bean:define>标签 16.2.2、<bean:size>标签 16.2.3、资源访问标签 16.2.4、<bean:write>标签 16.2.5、<bean:include>标签 16.2.6、<bean:resource>标签 ...
16.1、Struts标签库简介 16.2、Bean标签 16.2.1、<bean:define>标签 16.2.2、<bean:size>标签 16.2.3、资源访问标签 16.2.4、<bean:write>标签 16.2.5、<bean:include>标签 16.2.6、<bean:resource>...
7.3.3使用struts2标签设计模板 170 7.4freemarker与velocity的比较 171 本章小结 171 课后练习 172 第8章hibernate框架基础 173 8.1orm简介 173 8.1.1应用orm的意义 173 8.1.2流行的orm框架 174 8.2准备...
全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...
优点: Java EE标准,这意味着有很大的市场需求和更多的工作机会 上手快速并且相对容易 有大量可用的组件库 缺点: 大量的JSP标签 对REST和安全支持不好 没有一个统一的实现。既有SUN的实现,又有Apache的实现——...
17.3.1 标签(Label)组件 294 17.3.2 按钮(Button)组件 295 17.3.3 文本框(Text)组件 295 17.3.4 列表框(List)组件 297 17.3.5 组合框(Combo)组件 298 17.3.6 菜单栏(Menu)和菜单项(MenuItem) 299 17.4...
①IoC 与 Bean 配置、 管理 ②AOP 与事务、 权限控制 ③S2SH 整合开发 ④Spring, JPA 整合 2、 Hibernate ①ORM 与持久化映射 ②延迟加载、 性能优化 ③HQL 查询、 条件查询、 SQL 查询 ④二级缓存与查询缓存 3、 ...