知识大全 Bean标签库

Posted 属性

篇首语:如烟往事俱忘却,心底无私天地宽。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Bean标签库相关的知识,希望对你有一定的参考价值。

Struts1.x系列教程(6):Bean标签库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Bean标签库共有 个标签 这些标签可以完成如下五种工作

          获得HTTP请求信息

          访问Java对象

          访问JSP内嵌对象和Struts配置对象

          访问Web资源和属性文件

          输出信息

  下面我们就来分别介绍一下如何使用Bean标签库中的标签来完成上述的工作

  一 获得HTTP请求信息

  使用Bean标签库中的标签可以访问Cookie HTTP请求头以及请求参数

     <bean cookie>标签

  <bean cookie>标签用于获得一个Cookie对象 并创建一个page范围的变量来保存这个Cookie对象 <bean cookie>标签有三个常用属性

  ( )id 用于保存Cookie对象的变量名

  ( )name Cookie名

  ( )value Cookie的默认值 如果name所指的Cookie不存在 <bean cookie>标签就会创建一个新的Cookie对象 而value属性的值就是这个Cookie对象的value属性值 如果忽略value属性 当<bean cookie>标签未找到name指写的Cookie时 就会抛出一个javax servlet jsp JspException异常 因此 笔者建议在使用这个标签时加上value属性

     <bean header>标签

  <bean header>标签用于获得HTTP请求头字段的值 并创建一个page范围的变量来保存请求头字段的值 <bean header>标签有三个常用属性

  ( )id 用于保存HTTP请求头字段值的变量名

  ( )name HTTP请求头字段名

  ( )value HTTP请求头字段的默认值 如果name所指的HTTP请求头字段不存在 <bean header>标签就会将value属性的值存在page范围的变量中 如果不指定value属性 且指定的HTTP请求头字段不存在时 <bean header>标签就会抛出javax servlet jsp JspException异常

   <bean parameter>标签

  <bean parameter>标签用于获得HTTP请求参数的值 并创建一个page范围的变量来保存所获得的HTTP请求参数的值 <bean parameter>标签有三个常用属性

  ( )id 用于保存HTTP请求参数值的变量名

  ( )name HTTP请求参数名

  ( )value HTTP请求参数值的默认值 如果name所指的HTTP请求参数不存在 <bean parameter >标签就会将value属性的值存在page范围的变量中 如果不指定value属性 且指定的HTTP请求参数不存在时 <bean parameter>标签就会抛出javax servlet jsp JspException异常

  下面的例子演示了如何使用本节所讲的三个Bean标签来获得HTTP请求信息 在<samples工程目录>中建立一个文件 代码如下

  

  <%@ page pageEncoding= GBK %>  <%@ taglib uri= bean  prefix= bean %>  <>      <head>          <title>获得HTTP请求信息</title>      </head>      <body>          <%   测试bean:cookie标签  %>          <bean:cookie id= myCookie  name= name  value= default  />            <%               if (myCookie getValue() equals( default ))                                  Cookie cookie = new Cookie( name   newCookie );                   cookie setMaxAge( );                   response addCookie(cookie);                          %>      $myCookie value <%  用EL输出myCookie的value属性值  %>      <%           // $myCookie value相当于如下Java代码          Cookie cookie = (Cookie)pageContext getAttribute( myCookie );           out println(cookie getValue());               %> <br>       <%   测试bean:header标签  %>      <bean:header id= userAgent  name= user agent  value= unknown />      $userAgent<br>  <%  用EL输出userAgent的值  %>      <%  测试bean:parameter标签   %>      <bean:parameter id= myCountry  name= country  value= unknown />      $myCountry    <%  用EL输出myCountry的值  %>      </body>  </>

  在IE中输入如下的URL来测试

  //localhost /samples/?country=China

  要注意的是 上述的三个Bean标签都将变量保存到了page范围内(也就是JSP内嵌对象pageContext中) 并且不能改变变量的保存范围 读者在使用这三个Bean标签时应注意这一点

  二 访问Java对象

   <bean define>标签

  <bean define>标签用来将Java对象的属性值保存在变量中 <bean define>标签有五个常用属性

  ( )id 变量名

  ( )name Java对象名

  ( )property Java对象属性名

  ( )scope name所指的Java对象所在的访问 如果不指定 默认是page范围

  ( )toScope id所指的变量要保存的范围 如果不指定 默认是page范围

   <bean size>标签

  <bean size>标签用来获得集合(Map Collection)或数组的长度 <bean size>标签有两个常用的属性

  ( )id 一个Integer变量

  ( )name 集合或数据的变量名

  下面的例子演示了如何使用本节所讲的两个Bean标签来访问Java对象 在<samples工程目录>目录中建立一个accessJavaObject jsp文件 代码如下

  

  <%@ page pageEncoding= GBK %><%@ taglib uri= bean  prefix= bean %><>      <head>          <title>访问Java对象</title>      </head>      <body>      <%   建立actionform HtmlTagsForm对象实例  %>      <jsp:useBean id= TagsForm  class= actionform HtmlTagsForm />      <jsp:setProperty name= TagsForm  property= name  value =  李宁 />      <%   测试bean:define标签  %>          <bean:define id= myBeanVar  name= TagsForm  property= name />      $myBeanVar      <%          String[] arr = new String[ ];          pageContext setAttribute( arr  arr);       %>          <%   测试bean:size标签  %>           <bean:size id= length  name= arr />       $length      </body>  </>

  在IE中输入如下的URL来测试accessJavaObject jsp

  

  三 访问JSP内嵌对象和Struts配置对象

   <bean page>标签

  <bean page>标签用来建立一个page范围的变量 并可通过这个变量来访问JSP的内嵌对象 这个标签有两个属性

  ( )id 变量名

  ( )property JSP内嵌对象名 必须是application config request response或session其中之一

   <bean struts>标签

  <bean struts>标签用来建立一个page范围的变量 并可通过这个变量来访问Struts的三个配置对象 这个标签有四个属性

  ( )id 变量名

  ( )formBean struts config xml文件中的<form bean>标签的name属性值 如果指定这个属性 <bean struts>会创建 apache struts action ActionFormBean类型的对象实例

  ( )mapping struts config xml文件中的<action>标签的path属性值 如果指定这个属性 <bean struts>会创建 apache struts action ActionMapping类型的对象实例

  ( )forward struts config xml文件中的<global forwards>标签的子标签<forward>的name属性值 如果指定这个属性 <bean struts>会创建 apache struts action ActionForward类型的对象实例

  在使用<bean struts>标签时应注意 在满足下面三种情况中的一种 <bean struts>就会抛出异常

  ( )同时使用了formBean mapping和forward中的两个或三个

  ( )未指定formBean mapping和forward

  ( )formBean mapping或forward所指的标签不存在

  下面的例子演示了<bean page>和<bean struts>标签的使用方法 在<samples工程目录>目录中建立一个accessEmbeddedObject jsp文件 代码如下

  

  <%@ page pageEncoding= GBK %>  <%@ taglib uri= bean  prefix= bean %>  <>      <head>          <title>访问JSP内嵌对象和Struts配置对象</title>      </head>      <body>          <bean:page id= myRequest  property= request  />          myRequest characterEncoding = $myRequest characterEncoding          <br>          ntextPath = $ntextPath          <%              out println(myRequest getParameter( abc ));          %>          <bean:struts id =  myHtmlTagsForm  formBean= TagsForm /><br>          myHtmlTagsForm type = $myHtmlTagsForm type<br>          myHtmlTagsForm getClass() = $myHtmlTagsForm class           <bean:struts id =  myHtmlTags  mapping= /Tags /><br>          myHtmlTags type = $myHtmlTags type<br>          myHtmlTags getClass() = $myHtmlTags class           <bean:struts id =  myNewProduct  forward= newProduct /><br>          myNewProduct path = $myNewProduct path<br>          myNewProduct getClass() = $myNewProduct class       </body>  </>

  四 访问Web资源和属性文件

   <bean include>标签

  <bean include>标签用于获得相对或绝对路径的Web资源 并将这些资源的内容保存到page范围的变量中 <bean include>标签有四个常用的属性

  ( )id 变量名

  ( )href Web资源的绝对路径

  ( )page Web资源的相对路径 以 / 开头

  ( )forward struts config xml文件<global forwards>元素的子元素<forward>的name属性值 如果指定这个属性 <bean include>标签会自动获得<forward>的path属性所指的Web资源的内容

   <bean resource>标签

  <bean resource>标签和<bean include>标签类似 也用来获得Web资源的内容 但和<bean include>的不同之处是<bean resource>在访问Web资源时(如JSP页面) 并不执行这个JSP页面 而是将整个JSP页面的原始内容保存到变量中 而<bean include>在访问这个JSP页面时 会先执行这个JSP页面 然后将JSP页面执行后的结果保存在变量中 因此 使用<bean include>访问Web资源和在IE中输入相应的URL的效果是一样的 而<bean resource>获得的是JSP页面的源代码

  <bean resource>标签有三个属性

  ( )id 变量名

  ( )name Web资源的相对路径 以 / 开头

  ( )input 如果指定input属性 id变量为java io InputStream类型 如果未指定input属性 id变量为String类型

   <bean message>标签

  <bean message>标签用于从Java属性文件中获得字符串信息 要注意的是 <bean message>标签获得字符串信息后 并不将所获得的信息保存在变量中 而是将其直接输出 也就是在执行JSP页面时 在生成客户端内容时 <bean message>标签会被属性文件中的字符串信息代替 <bean message>标签的常用属性如下

  ( )key 属性文件中的字符串信息键名

  ( )bundle struts config xml文件中的<message resources>标签的key值属值 如果不指定bundle属性 就使用默认的属性文件

  ( )name 用于获得键名的字符串变量名或对象实例变量名 <bean message>标签除了从key属性中获得键名 还可以通过将key保存在指定范围的变量中 然后通过name属性获得这个key

  ( )property 获得key的属性名 如果name属性为对象实例变量名 则<bean message>标签会从property所指的属性中获得key

  ( )scope <bean message>标签获得name变量的范围 默认值是page

  ( )arg ~ arg 用于向带参数的字符串信息中传入参数值 分别对应于属性文件中的 ~

  下面的例子演示了本节所涉及到的三个标签的使用方法 在运行这个例子之前 先在<samples工程目录> src struts目录中建立一个MyResources properties文件 并输入如下的内容

  

  greet = hello worldmyGreet = hello 

  然后在struts config xml中的<struts config>元素中添加如下的子标签

  

  <message resources parameter= struts MyResources  key= my  />

  最后在<samples工程目录>中建立一个accessResources jsp文件 代码如下

  

  <%@ page pageEncoding= GBK %>  <%@ page import= actionform HtmlTagsForm %>  <%@ taglib uri= bean  prefix= bean %>  <>      <head>          <title>访问Web资源和属性文件</title>      </head>      <body>          <bean:include id= myWebVar                />          <bean:include id= myWebVar  page= /Tags jsp  />          <bean:include id= myWebVar  forward= newProduct  />          $myWebVar  $myWebVar  $myWebVar             <bean:resource id= myResVar  name= /Tags jsp  />          $myResVar          <%   从MyResources properties中获得信息  %>           <bean:message bundle= my  key= greet  />          <%   从ErrorDescription properties中获得信息  %>           <bean:message key= error email invalid  />          <bean:message bundle= my  key= myGreet  arg = 李宁  />            <%          request setAttribute( newGreet   greet );          %>          <bean:message bundle= my  name= newGreet  />          <%              HtmlTagsForm form = new HtmlTagsForm();              form setName( myGreet );              request setAttribute( form  form);          %>           <%   从form对象的name属性获得key  %>          <bean:message bundle= my  name= form  property= name  arg = 李宁  />      </body>  </>

  在IE中输入如下的URL来测试accessResources jsp

  

  五 使用<bean write>标签输出信息

  <bean write>用于输出字符串变量及对象变量的属性值 <bean write>有如下六个常用的属性

   name 变量名(包括字符串变量或对象变量)

   property 如果name是对象变量 property表示name对象的属性

   filter 是否过滤输出内容中的HTML元素 如果filter为true 输出内容中的所有的HTML元素的敏感符号都会被替换成相应的字符串(如 < 被替换成了 &lt > 被替换成了 &gt )

   format 用于格式化输出内容的格式化字符串

   formatKey 保存在属性文件中的格式化字符串的key

   scope name变量保存的范围 默认是page范围

  下面的例子演示了<bean write>的常用方法 在运行这个例子之前 在<samples工程目录> src struts MyResources properties文件中加入如下的内容

  

  formatDate = yyyy MM dd hh:mm:ss

  在<samples工程目录>目录中建立一个beanWrite jsp文件 代码如下

  

  <%@ page pageEncoding= GBK %>  <%@page import= actionform HtmlTagsForm java util * %>  <%@ taglib uri= bean  prefix= bean %>  <>      <head>          <title>测试bean:write</title>      </head>      <body>          <%              request setAttribute( abcd   myValue );              HtmlTagsForm form = new HtmlTagsForm();              form setName( hello );              form setWork( <b>工程师</b> );              request setAttribute( form  form);                Calendar calendar = Calendar getInstance();              request setAttribute( calendar  calendar);          %>          <bean:write name= abcd  /><br>          <bean:write name= form  property= name  /><br>          <bean:write name= form  property= work  /><br>          <bean:write name= form  property= work  filter= false  /><br>          <bean:write name= calendar  property= time  format= yyyy MM dd HH:mm:ss  /><br>          <bean:write name= calendar  property= time formatKey= formatDate  bundle= my  />      </body>  </>

  在IE中输入如下的URL来测试beanWrite jsp

  

  如果读者想了解关于bean标签库的更详细的信息 也可以访问官方的网站 URL如下

cha138/Article/program/Java/ky/201311/28008

相关参考

知识大全 常用Struts HTML标签库汇总

常用StrutsHTML标签库汇总  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  <:fo

知识大全 使用 Struts 提供的 HTML 标签库

使用Struts提供的HTML标签库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在本文系列的

知识大全 标签库完成复杂的后台处理功能的JSP示例

标签库完成复杂的后台处理功能的JSP示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JSTL

知识大全 JAVA程序员应该了解的10个JSP标签库

JAVA程序员应该了解的10个JSP标签库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 程序员要掌握的十个JSP中的标签库

程序员要掌握的十个JSP中的标签库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JSP最容易忽

知识大全 用定制标签库和配置文件实现对JSP页面元素的访问控制

用定制标签库和配置文件实现对JSP页面元素的访问控制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 自然的访问spring容器中的bean

   Spring依赖其IOC特征轻松的管理著一堆非常有价值的bean这些bean在spring容器中的依赖关系都已注入好所以相互调用非常方便  但既然是有价值的bean

知识大全 控制bean定制器的技巧

  概要  集成开发环境(IDEs)可以解剖一个bean类的文件并且生成一个带参数的对话框开发者可以利用它来定制自己的bean但是这些标准的定制对话框留下了很多参数以满足它的适应性灵活性和美学目的本文

知识大全 Spring容器对Bean组件的管理

Spring容器对Bean组件的管理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一Bean对

知识大全 关于在bean里面打印html的利弊看法

  servlet由于打印代码全部写在class中间所以代码编写很麻烦也不便于维护sun公司才推出了jsp  但这是否意味着我们在jsp+bean的架构中就不能在bean里面输出代码呢?    封装在