struts 标签详解一个不漏.docx
- 文档编号:9818750
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:22
- 大小:26.91KB
struts 标签详解一个不漏.docx
《struts 标签详解一个不漏.docx》由会员分享,可在线阅读,更多相关《struts 标签详解一个不漏.docx(22页珍藏版)》请在冰点文库上搜索。
struts标签详解一个不漏
struts标签详解(一个不漏)
整理来自:
www.web-
∙StrutsBean(1.2)
cookie
常用属性:
id:
定义一个javax.servlet.http.Cookie类型的变量,这个变量被存放在page范围内。
name:
指定Cookie的名字。
value:
指定Cookie的默认值。
如果有name属性指定的cookie不存在,就是使用value属性指定的默认值。
更多 cookie 信息
define
这个标签基于来自一个给定的字符串,或另一个JavaBean的数据暴露一个变量。
scriptlet及其他标签可以像访问任何其他的变量一样访问这个暴露变量。
这可能好像没有什么用处,但是它的确有用。
参见具体的例子。
也请参考cookie/header/parameter和page条目,其中有相关的标签。
1.使用限制
id属性是必需的,并作为要暴露的变量的名称。
也需要指定name/property/scope或value,或者将暴露的变量的值嵌入到”bean:
define”标签的标签体内部。
还有,只可以一次定义一个变量。
试图在同一个页面中定义一个同名的新变量将导致抛出异常。
更多 define 信息
header
bean:
header标签取回请求中名称为name的header的值。
如果没有指定multiple属性则依据刚取回的值创建一个String类型的bean。
如果指定了multiple属性则依据刚取回的值创建一个String[]类型的数组。
然后用id属性值将String或String[]绑定到page作用域中(这种绑定是为了其它标签能够使用该值),并创建对应的scripting变量(这种变量是为了JSP脚本能够使用该值)。
下面是我的浏览器发送的header的内容,这些内容和浏览器有关,因此您的浏览器发送的内容可能和下面列出的不同。
不过这没有关系,因为要理解bean:
header标签您只要对这些内容有一个大概的认识就足够了。
更多 header 信息
include
这个有趣的标签允许调用一个外部的JSP或全局转发或URL,并且将结果响应数据作为一个变量访问。
被调用页面的响应不会写出到响应流。
如果该暴露的变量是用”bean:
write”显示的,接收到的输出是经过HTML编码的(““”被替换为“&It;”,等等)。
1.使用限制
必须指定id属性和forward、page或者href属性之一。
2.属性
id:
要暴露的变量的名称。
scriptlet及其他定制标签将能够使用这个名称来访问该新变量。
结果变量是页面作用域的。
forward:
要调用的全局转发的名称。
page:
要调用的当前Web应用中的JSP页面的名称。
这个名称是相对于模块的,并且需要一个“/”前缀。
href:
外部页面的的绝对URL,例如http:
//www.kenyir.org/code/index.html。
anchor:
被调用页面的HTML锚的名称。
transaction:
如果被设置为true,则会在响应中包含事务令牌。
参见”logic:
redirect”条目中的说明。
更多 include 信息
message
这个标签显示一个国际化了的消息。
最多可以指定5个替代参数。
1.使用限制
必须指定key属性或者name/property/scope组合。
2.属性
key:
要显示的消息资源的关键字。
如果locale/bundle组合没有被指定,那么默认消息资源文件和用户的当前场所将被用来决定显示哪个消息资源。
name/property/scope:
这些属性被用来基于一个具有给定的name和可选的property和scope属性的对象来导出一个关键字。
如果没有指定scope,将在所有作用域中查找给定名称的对象。
locale/bundle:
这些属性用于指定一个不同的场所对象或消息资源文件。
locale指定一个可用于查找存储于当前会话中的Locale对象的关键字。
bundle属性将在下面的小节中详细解释。
arg0/arg1/arg2/arg3/arg4:
这些分别是第一个、第二个、第三个、第四个以及第五个替代参数的值。
更多 message 信息
page
这个方便的标签将来自于页面上下文中的对象暴露为可以通过scriptlet或定制标签访问的变量。
PageContext对象是当前页面的所有状态的储存库。
这包含在第2章描述过的会话(HttpSession)和请求(HttpServletRequest)中。
还有一些:
application:
javax.servlet.ServletContext对象,通过调用pageContext.getServlet-Context()来获得。
config:
javax.servlet.ServletConfig对象,通过调用pageContext.getServletConfig()来获得。
不要将其与Struts的内部配置对象搞混淆。
response:
与此页面关联的HttpServletResponse对象。
更多 page 信息
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[]类型的包含所有参数的值。
更多 parameter 信息
resource
resource允许从当前Web应用程序读取任何文件并且将其暴露为一个字符串变量或者一个InputStream。
参见”bean:
include”。
1.使用限制
id属性和name属性是必需的。
2.属性
id:
要暴露的变量的名称。
scriptlet及其他定制标签将能够使用这个名称来访问该新变量。
这个属性是必需的。
name:
要加载资源的模块相对的名称。
input:
如果这个属性被指定(实际的值并不重要),那么该暴露的变量具有InputStream类型,否则它是String类型。
更多 resource 信息
size
这个标签将一个给定的Collection或者Map或者数组的大小暴露为一个变量(整数类型),可以从scriptlet或定制标签访问到。
1.使用限制
id属性是必需的,并且必须指定想要测量大小的数组/Collection/Map,使用collection属性或者一个name/property/scope组合。
2.属性
id:
要暴露的变量的名称。
scriptlet及其他定制标签将能够使用这个名称来访问该新变量。
这个属性是必需的。
name/property/scope:
这些属性被用来定位Collection/Map/数组,基于可选的属性和作用域。
如果没有指定scope,将在所有作用域中查找给定名称的对象。
collection:
这个是name/property/scope组合的一个非常方便的替换物。
使用scriptlet来计算这个属性的值,
更多 size 信息
struts
这个标签暴露一个Struts全局转发,或表单bean或表单处理器(该表单处理器的ActionMapping)为一个变量,可以通过scriptlet及其他标签进行访问。
如果想要JSTL能够访问Struts的内部变量,这是很有帮助的。
1.使用限制
id属性是必需的。
还必须指定forward、formBean或mapping属性。
2.属性
id:
要暴露的变量的名称。
scriptlet及其他定制标签将能够使用这个名称来访问该新变量。
这个属性是必需的。
forward:
要暴露的全局转发的名称。
formBean:
要暴露的已经声明的表单bean的名称。
mapping:
要暴露的表单处理器的名称。
更多 struts 信息
write
这个标签将指定的bean属性输出为响应流。
它允许对给定的bean属性进行一些格式化。
1.使用限制
name属性是必需的。
2.属性
name/property/scope:
这些属性被用来基于给定的name和可选的property和scope来定位JavaBean。
如果没有指定scope,将在所有作用域中查找给定名称的对象。
ignore:
如果被设置为true,则一旦命名的JavaBean没有找到,则失败,什么也不会发生。
默认值(false)导致一个异常被抛出。
更多 write 信息
∙StrutsHtml(1.2)
cancel
html:
cancel标签生成一个取消按钮。
当点击该按钮后actionservlet会绕过相应的formbean的validate()方法,同时将控制权交给相应的action。
在该action中可以使用Action.isCancelled(HttpServletRequest)方法判断是否被取消了。
如果返回true表示这个action被取消了,否则表示这个action没有被取消。
请注意,如果您修改了html:
cancel标签的property属性值,那么struts提供的cancel探测机制就失效了,您自己必须提供类似的机制。
下面是可取消的action的配置文件,注意
这是我在完成本指南的过程中发现的唯一向下不兼容的地方。
更多 cancel 信息
checkbox
html:
check标签生成一个checkbox。
这里的value值可以是true,yes或on。
如果您要提交其它的值(如某种形式的标识)应该考虑使用html:
multibox标签。
注意:
为了正确的处理没有选中的checkbox您必须在reset()中设置对应的属性为false。
下面的代码示例了html:
checkbox标签的用法,其中CheckboxForm中声明了三个boolean类型的域,如下:
--略掉了get方法(也可以是isXXX形式)和set方法-->
privatebooleanone=false;
privatebooleantwo=false;
checkboxname="checkboxForm"property="one">One
checkbox>
checkboxname="checkboxForm"property="two">Two
checkbox>
如果选中后被提交则相应的属性的值为true。
更多 checkbox 信息
errors
html:
errors标签和html:
messages标签的功能相似,做比较介绍。
html:
errors标签将由name属性指定的ActionMessages、ActionErrors、String和String[]直接输出到页面中。
html:
messages标签将用由name属性(注意message属性值对它的影响)指定的ActionMessages、ActionErrors、String和String[]创建一个新的属性和scripting变量,使用id属性值作为名称。
html:
errors标签和html:
messages标签的property属性是用来为errors和messages分类的。
我们可以给这两个标签指定property属性,以便只显示某一类的错误或消息。
更多 errors 信息
form
示例
通常,可以指定action和focus属性:
formaction="login.do"focus="userId"> textproperty="userId"> .... form> 更多 form 信息 frame 呈现为一个HTML“frame”。 使用”html: frame”的好处在于可以使用全局转发或表单处理器来轻易地将内容放入frame中。 1.使用限制 必须指定action/module、href、page或者forward属性。 例如: framepage="/index.jsp"scrolling="no"framName="main"/> 更多 frame 信息 hidden 这个标签表示一个隐藏表单字段。 1.使用限制 property属性是必需的。 它必须是”html: form”标签的一个子标签。 2.属性 前5个公共属性集(evt-attrs、acc-attrs、ren-attrs、struts-attrs和initattr)都是可接受的,并且都有其通常的意义。 除此之外,还有个write属性,如果被设置为true,将导致这个隐藏字段的值会被显示。 这在调试时是有用的。 3.示例 hiddenproperty="userId"/> 还可以这样指定一个value属性.... 更多 hidden 信息 html 这个标签插入”html”…”/html”标签,并且language属性等于当前的用户的场所。 1.使用限制 无——如果使用它,其他的Struts标签应该被嵌套在它内部。 html>ok html> 更多 html 信息 img 用于在网页上面显示一个图片 写法大致如下: imgsrcKey="panyLogo"> 更多 img 信息 javascript html: javascript标签生成用于校验的javascript脚本代码。 下面的代码片段示例了html: javascript标签的基本用法,其中formName属性的值是在validation.xml文件的 有一点值得注意的是在确定 javascriptformName="dataForm"/> 更多 javascript 信息 link html: link标签生成一个锚点()元素。 我从html: link标签如何构造基本url和如何构造query参数两个方面来介绍这个标签。 构造基本url是依据该标签的如下四个属性进行的,这四个属性一次只能出现一个。 让我们看看它们: forward,指定一个全局ActionForward的名称。 另外如果forward是module相关的则该forward必须指向一个action而不能是一个页面。 action,指定一个Action的名称。 href,struts会直接使用这个值而不会对其进行任何处理。 page,指定一个页面的路径,必须以/开始。 更多 link 信息 messages html: messages标签功能和html: errors相似,所以我们放到一起来介绍。 html: errors标签将由name属性指定的ActionMessages、ActionErrors、String和String[]直接输出到页面中。 html: messages标签将用由name属性(注意message属性值对它的影响)指定的ActionMessages、ActionErrors、String和String[]创建一个新的属性和scripting变量,使用id属性值作为名称。 html: errors标签和html: messages标签的property属性是用来为errors和messages分类的。 我们可以给这两个标签指定property属性,以便只显示某一类的错误或消息。 在资源文件增加了如下的内容: ... 更多 messages 信息 multibox html: multibox标签生成多个checkbox。 当您要使用大量的checkbox时使用这个标签非常方便,可以使您避免在ActionForm中声明大量的boolean类型的变量,带之以一个数组就行了。 注意: 为了正确的处理没有选中的checkbox您必须在reset()中设置数组的长度为0。 下面的代码示例了html: multibox标签的一般用法,如果被提交则选中的所有checkbox的value值将被提交到multiboxForm中的selectedItems中,这是一个String[]数组。 multiboxname="multiboxForm"property="selectedItems"value="00001"/> multiboxname="multiboxForm"property="selectedItems"value="00002"/> 更多 multibox 信息 password text表示一个一行的文本输入字段。 password表示一个口令字段。 两者之间唯一的差别在于,使用”html: password”标签,用户输入的字符将不会被显示出来;只有星号或其他的占位符被显示出来。 1.使用限制 property属性是必需的。 它必须是”html: form”标签的一个子标签。 2.属性 全部的公共的属性集(evt-attrs、acc-attrs、ren-attrs、struts-attrs、init-attr和新的err-attrs)都是可接受的,并且都有其通常的意义。 更多 password 信息 radio html: radio标签生成一个radio。 主要的用法有两种,下面我们通过代码来示例。 下面的代码示例了html: radio标签的一般用法,如果被提交则选中的radio的value值将被提交到radioForm中的id中。 radioname="radioForm"property="id"value="00001">One radio> radioname="radioForm"property="id"value="00002">Two radio> 更多 radio 信息 reset 这个标签显示一个如果被单击后,将导致外围的表单中的字段被清除的按钮。 1.使用限制 这个标签应该用于一个”html: form”标签内部。 2.属性 前4个通用属性集(evt-attrs、acc-attrs、ren-attrs和struts-attrs)都是可以接受的。 如果其值没有被指定,并且如果没有在”html: reset”标签的标签体中呈现文本,那么按钮文字默认为“Reset”。 3.示例 这个例子展示了1个提交按钮,按钮的文本都是“test”。 resetvalue="test"/> 更多 reset 信息 rewrite 这个标签解析并且呈现一个URL。 所用的规则类似于”html: link”中所用的。 不同于”html: link”的是,URL不是被嵌入到一个HTML“a”标签中,URL是单独呈现的。 可以发现在调试时或用于脚本的时候这个标签是非常有用的。 示例 这里是使用一个全局转发的简单例子: rewriteforward="success"/> 更多 rewrite 信息 select html: select标签生成一个select元素。 是单选还是多选取决于该标签的multiple属性。 如果指定了multiple="true"则为多选,此时对应的属性应该是一个数组。 如果没有指定multiple="true"则为单选,此时对应的属性应该是标量。 注意: 为了正确的处理没有做任何的选择的情况,在ActionForm中的reset()方法中必须将标量属性设置为默认值而将数组的长度置为0。 另外的一个重要问题就是struts如何生成option元素了,这个任务struts交给了html: option、html: options和html: optionsCollection三个标签。 html: option标签 html: option标签生成一个HTML的option元素。 该标签必须嵌在html: select标签中。 它的显示文本来自其标签体,也可以来自于资源文件。 它的value属性用来指定什么值将要被提交。 更多 select 信息 submit 这个标签显示一个按钮,如果被单击将导致外围的表单被提交处理。 1.使用限制 这个标签必须用于一个”html: form”标签内部。 2.属性 “html: submit”对前4个公共属性集(evt-attrs、acc-attrs、ren-attrs和struts-attrs)都是可以接受的。 如果其值没有被指定,并且如果没有在它的标签体中呈现文本,那么按钮文字默认为“Submit”。 3.示例 submitvalue="test"/> 更多 submit 信息 text text表示一个一行的文本输入字段。 password表示一个口令字段。 两者之间唯一的差别在于,使用”html: password”标签,用户输入的字符将不会被显示出来;只有星号或其他的占位符被显示出来。 1.使用限制 property属性是必需的。 它必须是”html: form”标签的一个子标签。 2.属性 全部的公共的属性集(evt-attrs、acc-attrs、ren-attrs、struts-attrs、init-attr和新的err-attrs)都是可接受的,并且都有其通常的意义。 更多 text 信息 xhtml html: xhtml标签在页面中一出现就是告诉该页的所有其它的Strutshtml标签以XHTML1.0兼容的形式输出。 这和将html: html标签的xhtml属性值指定为true有些类似。 如果上述情况都没有出现,Strutshtml标签将以html4.01兼容的形式输出。 更多 xhtml 信息 empty logic: empty标签是用来判断是否为空的。 如果为空,该标签体中嵌入的内容就会被处理。 该标签用于以下情况: 当Jav
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- struts 标签详解一个不漏 标签 详解 一个