正文

bean标记库2007-03-13 10:38:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/hurongliang/23915.html

分享到:

bean:cookie 根据cookie的键检索一个cookie,将其值赋给在id属性,并保存在本地范围和页面范围里。 value和multiple功能跟header一样 当使用bean:write时,其name属性对应bean:cookie的id属性,property属性值必须是“value”。 bean:header bean:header标记用于将HTTP请求头中的某个信息的String对象存储在page范围和本地范围内的JSP脚本变量中。 如果指定了multiple属性。可以存储同一名称的多个标题。如:如果传入请求具有名称同为“Accept-Language”的两个标题,则将使用String[]数组来捕获每个标题值。然后将此数组存储在由id属性指定的JSP变量中。 value属性用于如果传入请求中不存在指定资源时指定一个默认值。 bean:parameter bean:parameter标记将HTTP请求参数保存在page范围和本地范围内的JSP脚本变量中。 指定了multiple属性可以将同名参数的多个参数值保存到page范围和本地范围内的一个数组(String[])中。 value属性表示:如果name属性指定的要查找的参数不存在,则则将创建一个新的String对象,并将value属性的值赋给这个对象,然后同时存储在page范围和本地范围里 bean:page 检索JSP隐式对象,包括application, config, request, response,和 session,然后放在本地范围和页面范围里。 id属性值不能为application, config, request, response,和 session。因为此标签会将变量保存在本地范围里。但本地范围已经存在application, config, request, response,和 session这些变量了。其实此标签的主要功能是将这些隐式对象保存在页面范围里了。用bean:write只能在page不能读取存放在本地范围里的变量。 访问Web资源 bean:message 访问指定资源束的一个键值对。 bundle属性指定使用哪个资源束 key指定关键字的名称 locale 用于限定语言环境 scope 指定查找name属性指定的对象时的搜索范围(应用程序、页面、请求或会话),如果没有指定,则按下列顺序搜索每个范围:页面、请求、会话、应用程序。 指定关键字有三种方法: 1.  用key属性来指定关键字:<bean:message key=”label.search.name”/> 2.  使用name属性指定一个变量,标记将这个变量的值作为检索的关键字:<%String msg=”result”;pageContext.setAttribute(“msg”,msg);%><bean:message bundle=”special” name=”msg” arg=”success”/>struts-config.xml:  <message-resources parameter="com.yourcompany.struts.SpecialResources" key=”special” />SpecialResources.properties:result={0}页面显示:success 3.  使用name和property属性指定一个javabean的字段作为检索的关键字: bean:resource 用于加载Web应用程序资源的内容并将其以String对象存储在页面范围和本地范围内的JSP变量中。另外,你可以选择指定是否只想要资源的java.io.InputStream对象的引用而不是将其内容保存在String对象中 Web应用程序资源是那些作为Web应用程序的一部分而打包的文件。如: 如果你的Web应用程序位于名为c:\tomcat\strutssample的目录中,并有以下文件: l  c:\tomcat\strutssample\index.jsp l  c:\tomcat\strutssample\WEB-INF\struts-config.xml 那么你就可以将index.jsp作为“/index.jsp”来访问。请注意,WEB应用程序资源的路径与该应用程序相关,且必须用斜杠(/)开头。 如果加载资源错误,则在运行resource标记时会抛出一个JspException异常。] 用resource标记加载struts-config.xml的示例: <bean:resource id=”strutsConfig” name=”/WEB-INF/struts-config.xml”/> 访问: Struts Config file contents:<%=strutsConfig%> 或 Struts Config file contents:<bean:write name=”strutsConfig”/> 以下代码帮说明如何使用资源标记来为WEB应用程序资源获得一个java.io.InputStream的引用。 <bean:resource id=”strutsConfig” input=”true” name=”/WEB-INF/struts-config.xml”/> input属性接受任何的值。只要存在值,java.io.InputStream引用将被存储在JSP变量中,而不是包含WEB资源内容的String对象。 你可以使用bean:resource标记加载web应用程序资源的内容,比用Scriplet更简洁。 bean:struts 用于将Struts配置对象的引用存储在本地范围和页面范围内的JSP变量中。 使用标记必须指定formBean,forward或mapping属性之一,否则运行时将抛出JspException。另外,如果找不到指定的配置对象,运行时将抛出JspException 第一种用法:存储fromBean对象<bean:struts id=”cfg” formBean=”searchForm”/>formBean属性的值与在Struts配置文件中<form-bean>标记的name属性的值相匹配。 第二中:存储forward对象<bean:struts id=”cfg” forward=”search”/> forward属性的值与在Struts配置文件中的<global-forward>标记的子标记<forward>的name属性匹配。 第三种:存储Action对象<bean:struts id=”cfg” mapping=”/search”/> mapping属性的值与在Struts配置文件中的<action>标记的path属性的值匹配。 bean:include 用于执行对页面的请求,并将响应结果的客户端代码存储在JSP变量中。 有三种使用方法: 1.  使用forward属性指定forward名称<bean:include id=”search forward=”forward”/> 2.  使用href属性指定绝对URL<bean:include id=”search” href=”http://www.google.com” /> 3.  使用page属性指定相对于应用程序的URL<bean:include id=”search” page=”/search.jsp”/> 使用bean:write输出时要将其filter属性设置为false才能显示正确信息,否则显示客户端源代码 问题1 用bean:write输出时中文信息是乱码 定义和输出JavaBean bean:define 定义一个变量并将其保存在本地范围和由toScope指定的范围里。如果id指定这个变量已存在则替换之。 toScope属性可选的值有:page,request,session.application。默认为”page” scope 属性指定要赋给这个变量的值所在的范围。 type 指定指定要赋给这个变量的值的类型。如果该标记指定了value属性则type默认为java.lang.String,否则值为java.lang.Object。 给id属性变量赋值有以下四种方法: 1.  设置value属性<bean:define id=”name” value=”rolia”/> 2.  同时设置name和property 属性name代表一个已存在的Bean,property代表这个Bean的某个属性。id变量的值由property属性决定。 3.  设置name属性name属性指定一个以存在的变量,可以用scope属性指定这个变量所在范围。 4.  将值放在标记的起始位置和结束位置之间。<bean:define id=”name”>rolia</beandefine> bean:write 用于输出变量,或JavaBean的某个属性字段,并调用toString()方法获得字符串,然后输出字符串的内容。 l  name属性指定一个已存在的变量 l  property属性与name属性一起指定JavaBean的某个属性字段 l  format指定输出格式如:      <%        java.util.Calendar c = java.util.Calendar.getInstance(java.util.TimeZone.getTimeZone("GMT+8"),java.util.Locale.CHINA);        pageContext.setAttribute("c",c);      %>      <bean:write name="c" property="time" format="dd-mm-yyyy hh:mm:ss"/>   l  filter 当为true时,转换HTML符号。默认为true 当要输出的变量不存在或为null时抛出错误。所以在输出变量前应用logic:present检查变量是否存在。 bean:size 用于将数组、基于java.util.Collection的对象或基于java.util.Map对象的大小以java.lang.Integer对象存储在本地范围和页面范围的变量里。 有三种方法指定集合: 1.  使用一个scriplet表达式表示一个本地范围的变量    <%      String[] array = new String[3];     %>     <bean:size id="size" collection="<%=array%>"/>     <bean:write name="size"/> 2.  使用name属性来指定集合对象的名称。若没有指定scope则依次在page,request,session.application范围里查找,否则在scope指定的范围里查找。 3.  name和property属性指定集合对象的名称为一个JavaBean的某个字段的名称。若没有指定scope则依次在page,request,session.application范围里查找,否则在scope指定的范围里查找。 如果没有使用上述任何一种方法指定集合则抛出JspException

阅读(3330) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册