struts标签详解(一个不漏).doc_第1页
struts标签详解(一个不漏).doc_第2页
struts标签详解(一个不漏).doc_第3页
struts标签详解(一个不漏).doc_第4页
struts标签详解(一个不漏).doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

struts标签详解(一个不漏)整理来自: Struts Bean(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信息headerbean: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,例如/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信息parameterbean:parameter标签取回请求中的参数值。如果没有指定multiple属性则依据刚取回的值创建一个String类型的bean。如果指定了multiple属性则依据刚取回的值创建一个String类型的数组。然后用id属性值将String或String绑定到page作用域中(这种绑定是为了其它标签能够使用该值),并创建对应的scripting变量(这种变量是为了JSP脚本能够使用该值)。 下面的两个代码片段使用相同的url传递参数,url的形式为:8080/struts-demo/parameter.jsp?param=1¶m=2¶m=3。前面的代码片段中没有指定multiple属性,因此p是String类型而且仅仅读取了参数的第一个值。后面的代码片段中指定了multiple属性的值,因此ps是String类型的包含所有参数的值。更多parameter信息resourceresource允许从当前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信息 Struts Html(1.2) cancelhtml:cancel标签生成一个取消按钮。当点击该按钮后action servlet会绕过相应的form bean的validate()方法,同时将控制权交给相应的action。在该action中可以使用Action.isCancelled(HttpServletRequest)方法判断是否被取消了。如果返回true表示这个action被取消了,否则表示这个action没有被取消。 请注意,如果您修改了html:cancel标签的property属性值,那么struts提供的cancel探测机制就失效了,您自己必须提供类似的机制。下面是可取消的action的配置文件,注意这一行,如果不添加Struts会抛出org.apache.struts.action.InvalidCancelException异常。这是我在完成本指南的过程中发现的唯一向下不兼容的地方。更多cancel信息checkboxhtml:check标签生成一个checkbox。这里的value值可以是true,yes或on。如果您要提交其它的值(如某种形式的标识)应该考虑使用html:multibox标签。 注意:为了正确的处理没有选中的checkbox您必须在reset()中设置对应的属性为false。下面的代码示例了html:checkbox标签的用法,其中CheckboxForm中声明了三个boolean类型的域,如下:private boolean one = false;private boolean two = false;OneTwo如果选中后被提交则相应的属性的值为true。更多checkbox信息errorshtml: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属性:.更多form信息frame呈现为一个HTML “frame”。使用”html:frame”的好处在于可以使用全局转发或表单处理器来轻易地将内容放入frame中。1. 使用限制必须指定action/ module、href、page或者forward属性。例如:更多frame信息hidden这个标签表示一个隐藏表单字段。1. 使用限制property属性是必需的。它必须是”html:form”标签的一个子标签。2. 属性前5个公共属性集(evt-attrs、acc-attrs、ren-attrs、struts-attrs和initattr)都是可接受的,并且都有其通常的意义。除此之外,还有个write属性,如果被设置为true,将导致这个隐藏字段的值会被显示。这在调试时是有用的。3. 示例还可以这样指定一个value属性.更多hidden信息html这个标签插入”html”/html”标签,并且language属性等于当前的用户的场所。1. 使用限制无如果使用它,其他的Struts标签应该被嵌套在它内部。ok更多html信息img用于在网页上面显示一个图片写法大致如下:更多img信息javascripthtml:javascript标签生成用于校验的javascript脚本代码。 下面的代码片段示例了html:javascript标签的基本用法,其中formName属性的值是在validation.xml文件的中定义的form的名称。有一点值得注意的是在确定时要使用合适的language属性值。更多javascript信息linkhtml:link标签生成一个锚点()元素。我从html:link标签如何构造基本url和如何构造query参数两个方面来介绍这个标签。构造基本url是依据该标签的如下四个属性进行的,这四个属性一次只能出现一个。让我们看看它们:forward,指定一个全局ActionForward的名称。另外如果forward是module相关的则该forward必须指向一个action而不能是一个页面。action,指定一个Action的名称。href,struts会直接使用这个值而不会对其进行任何处理。page,指定一个页面的路径,必须以/开始。更多link信息messageshtml: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信息multiboxhtml:multibox标签生成多个checkbox。当您要使用大量的checkbox时使用这个标签非常方便,可以使您避免在ActionForm中声明大量的boolean类型的变量,带之以一个数组就行了。注意:为了正确的处理没有选中的checkbox您必须在reset()中设置数组的长度为0。下面的代码示例了html:multibox标签的一般用法,如果被提交则选中的所有checkbox的value值将被提交到multiboxForm中的selectedItems中,这是一个String数组。更多multibox信息passwordtext表示一个一行的文本输入字段。password表示一个口令字段。两者之间唯一的差别在于,使用”html:password”标签,用户输入的字符将不会被显示出来;只有星号或其他的占位符被显示出来。 1. 使用限制property属性是必需的。它必须是”html:form”标签的一个子标签。2. 属性 全部的公共的属性集(evt-attrs、acc-attrs、ren-attrs、struts-attrs、init-attr和新的err-attrs)都是可接受的,并且都有其通常的意义。更多password信息radiohtml:radio标签生成一个radio。主要的用法有两种,下面我们通过代码来示例。 下面的代码示例了html:radio标签的一般用法,如果被提交则选中的radio的value值将被提交到radioForm中的id中。OneTwo更多radio信息reset 这个标签显示一个如果被单击后,将导致外围的表单中的字段被清除的按钮。1. 使用限制这个标签应该用于一个”html:form”标签内部。2. 属性 前4个通用属性集(evt-attrs、acc-attrs、ren-attrs和struts-attrs)都是可以接受的。如果其值没有被指定,并且如果没有在”html:reset”标签的标签体中呈现文本,那么按钮文字默认为“Reset”。3. 示例这个例子展示了1个提交按钮,按钮的文本都是“test”。更多reset 信息rewrite这个标签解析并且呈现一个URL。所用的规则类似于”html:link”中所用的。不同于”html:link”的是,URL不是被嵌入到一个HTML “a”标签中,URL是单独呈现的。可以发现在调试时或用于脚本的时候这个标签是非常有用的。示例这里是使用一个全局转发的简单例子:更多rewrite信息selecthtml: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. 示例更多submit信息texttext表示一个一行的文本输入字段。password表示一个口令字段。两者之间唯一的差别在于,使用”html:password”标签,用户输入的字符将不会被显示出来;只有星号或其他的占位符被显示出来。 1. 使用限制property属性是必需的。它必须是”html:form”标签的一个子标签。2. 属性 全部的公共的属性集(evt-attrs、acc-attrs、ren-attrs、struts-attrs、init-attr和新的err-attrs)都是可接受的,并且都有其通常的意义。更多text信息xhtmlhtml:xhtml标签在页面中一出现就是告诉该页的所有其它的Struts html标签以XHTML1.0兼容的形式输出。这和将html:html标签的xhtml属性值指定为true有些类似。如果上述情况都没有出现,Struts html标签将以html4.01兼容的形式输出。 更多xhtml信息emptylogic:empty标签是用来判断是否为空的。如果为空,该标签体中嵌入的内容就会被处理。该标签用于以下情况: 当Java对象为null时 当String对象为时 当java.util.Collection对象中的isEmpty()返回true时 当java.util.Map对象中的isEmpty()返回true时 下面的代码示例了logic:empty标签判断集合persons是否为空: 集合persons为空! 更多empty信息equalequal检查给定的属性(或扩展属性)是否等于一个给定值。如果是这样的话,equal标签的标签体便会被执行。notEqual是equal的逆命题。1. 使用限制value属性是必需的。2. 属性base-attrs和exprop-attrs属性集都是接受的。还有一个额外的value属性,它是属性或扩展属性将要与之比较的一个常数值。更多equal信息forward该标签用于进行全局转发,使用该标签的页面一般不再编写其他内容,因为随着转发,页面将跳转,原页面中的内容也没有意义了。例如:welcome 是配置在struts里面的全局转发变量,大致这样更多forward信息greaterEqualgreaterEqual是一个有条件标签,只有在给定的属性(或扩展属性)大于或等于由value属性给出的常数值的时候,其标签体才会被执行。本组中的其他标签也是类似定义的。注意,如果值不是一个数值,它会被解释为一个字符串,并且会执行字符串之间的比较(使用Java的标准字符串比较)。1. 使用限制value属性是必需的。2. 属性base-attrs和exprop-attrs属性集都是接受的。还有一个额外的value属性,它是属性或扩展属性将要与之比较的一个常数值。更多greaterEqual信息greaterThan意为:大于示例:/.再说明下cookie属性的使用。/.更多greaterThan信息iterateid 脚本变量的名称,它保存着集合中当前元素的句柄。 name 代表了你需要叠代的集合,来自session或者request的属性。 type 是其中的集合类元素的类型 bean的write标记是用来将属性输出的,name用来匹配iterate的id,property用来匹配相应类的属性用法详解22007-04-04 20:34标记用于在页面中创建一个循环,以此来遍历如数组、Collection、Map

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论