Bean标签库的Struts-EL标签.docVIP

  • 7
  • 0
  • 约7.37千字
  • 约 13页
  • 2017-06-14 发布于广东
  • 举报
Bean标签库的Struts-EL标签

C.3 Bean标签库的Struts-EL标签 在Bean库中只有下列标签具有EL使能的版本:includemessage、page、resource、size和struts。 注意 EL使能的标签是指那些允许使用EL表达式的标签。具体例子参见第10章。 C.3.1 cookie/header/parameter 每一个都基于指定的cookie/header/parameter/variable的值暴露一个脚本变量。 1. 使用限制 id属性和name属性是必需的。 2. 属性 name:需要取得的cookie/header/parameter的名称。 id:要暴露的变量的名称。scriptlet及其他定制标签将能够使用这个名称来访问cookie/header/parameter的属性。 value:万一给定名称的cookie/header/parameter不能被找到而需要返回的默认值。 multiple:指定具有相同名称的多个cookie/header/parameter如何被处理。这个属性的实际值并不重要。如果multiple属性被设置,那么通过id暴露的变量便是一个对应类型的数组(Cookie []/String []/String [])。如果multiple属性不存在,那么第一个发生的cookie/header/parameter就会被绑定到暴露的变量。 3. 示例 考虑下面的URL: /mypage.jsp?command=testaction=saveid=12345 下面就是如何在请求URL上面暴露名为command的参数: 如果有不只一个名为command的参数,例如: 可以这样访问它们: header和cookie标签具有类似的例子。 4. 对应物 JSTL c:set是这个标签的替代。 下面是如何在没有指定multiple属性的情况下将c:set作为此标签的对应物。变量名为myVar *,对应的cookie/header/parameter的名称都是myAttr。 如果multiple属性被指定,那么可以使用下列方式之一: 注意,这里还使用了一个c:remove标签来删除一个声明了的变量。 C.3.2 define 这个标签基于来自一个给定的字符串,或另一个JavaBean的数据暴露一个变量。scriptlet及其他标签可以像访问任何其他的变量一样访问这个暴露变量。这可能好像没有什么用处,但是它的确有用。参见具体的例子。 也请参考cookie/header /parameter和page条目,其中有相关的标签。 1. 使用限制 id属性是必需的,并作为要暴露的变量的名称。也需要指定name/property/scope或value,或者将暴露的变量的值嵌入到bean:define标签的标签体内部。还有,只可以一次定义一个变量。试图在同一个页面中定义一个同名的新变量将导致抛出异常。 2. 属性 id:要暴露的变量的名称。scriptlet及其他定制标签将能够使用这个名称来访问该新变量。 name/property /scope:这些属性使用一个给定的name和可选的property和scope属性来定位一个被暴露的对象。如果没有指定scope,将在所有作用域中查找给定名称的对象。 value:要暴露的字符串值。这样将通过id属性暴露的变量绑定到value属性指定的字符串。 toScope:在其上保存新变量的作用域。可以是page、request、session或application。 type:使用id属性暴露的变量的全限定类名。如果未被指定,在指定value属性的时候将同时使用java.lang.String。要使用嵌套技术也会有提示(见示例),如果使用name/property/scope的方式,隐含的类名是java.lang.Object。 3. 示例 下面是可以使用bean:define来暴露一个字符串或变量的例子: 在最后一个例子中,如果myAttr.getMyProp()返回null,那么将抛出一个异常。否则,myVar5等于myAttr.getMyProp()在其被调用时的值。 如果与Struts EL标签一起使用,可以使用bean:define来帮助本地化验证(12章)12章的对本地化验证的处理,我们解释说可以使用嵌入本地化格式字符串到表单数据中的技巧来解决(参看代码清单12-3)。Action将被用于填充隐藏字段。填充该隐藏字段的更优雅的方式是使用bean:define和html-el:hidden,就像这样: myapp.formats.dateFormat 指向的消息是日期格式,当然,这是被Struts自动本地化的。不需要任何Action子类! 4. 对应物 J

文档评论(0)

1亿VIP精品文档

相关文档