struts 标签详解(一个不漏)

  • 格式:doc
  • 大小:182.50 KB
  • 文档页数:19

struts标签详解(一个不漏)整理来自: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的形式为http://127.0.0.1:8080/struts-demo/parameter.jsp?param=1&param=2&para 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 信息cancelhtml:cancel标签生成一个取消按钮。

当点击该按钮后action servlet会绕过相应的form bean的validate()方法,同时将控制权交给相应的action。

在该action中可以使用Action.isCancelled(HttpServletRequest)方法判断是否被取消了。

如果返回true表示这个action被取消了,否则表示这个action没有被取消。

请注意,如果您修改了html:cancel标签的property属性值,那么struts提供的cancel 探测机制就失效了,您自己必须提供类似的机制。

下面是可取消的action的配置文件,注意<set-property property="cancellable" value="true"/>这一行,如果不添加Struts会抛出org.apache.struts.action.InvalidCancelException异常。

这是我在完成本指南的过程中发现的唯一向下不兼容的地方。

更多 cancel 信息checkboxhtml:check标签生成一个checkbox。

这里的value值可以是true,yes或on。

如果您要提交其它的值(如某种形式的标识)应该考虑使用html:multibox标签。

注意:为了正确的处理没有选中的checkbox您必须在reset()中设置对应的属性为false。

下面的代码示例了html:checkbox标签的用法,其中CheckboxForm中声明了三个boolean类型的域,如下:<!-- 略掉了get方法(也可以是isXXX形式)和set方法-->private boolean one = false;private boolean two = false;<html:checkbox name="checkboxForm"property="one">One</html:checkbox><html:checkbox name="checkboxForm"property="two">Two</html:checkbox>如果选中后被提交则相应的属性的值为true。