struts_tiles的学习
关键字: struts_tiles2. 2. 在JSP页面中
3. 3. 使用tiles标签库:
1) 1). 类包:struts.jar、commons-digester.jar、commons-beanutils.jar、commons-collections.jar、commons-logging.jar。
2) 2).加入struts-tiles.tld文件。 在web文件中配置
3) 3).在专门的XML文件中配置Ttile组件(如:tiles-defs.xml),这个文件位于WEB-INF目录下。
<definition name="common" path="/WEB-INF/pages/template.jsp">
<put name="menuTitle" value="${menuTitle}" />
<put name="workflow" value="${workflow}" />
<put name="header" value="header.jsp" />
<put name="breadcrumbs" value="breadcrumbs.jsp" />
<put name="graphics" value="${graphics}" />
definition>
<definition name="net.tiles.yun" extends="common">
<put name="menuTitle" value="yunchat welcome you here" />
<put name="graphics" value="yun graphics" />
<put name="message" value="tiles.msg.001" />
<put name="workflow" value="tt workflow" />
<put name="breadcrumbs" value="breadcrumbs.jsp" />
<put name="header" value="header.jsp" />
definition>
4) 4).在Struts配置文件中配置TilesPlugin插件
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml,/WEB-INF/tiles-defs-yun.xml" />
<set-property property="moduleAware" value="true" />
value="true" />
plug-in>
definition-paser-validate参数:指定XML解析器是否验证Tiles配置文件。默认true;
5) 5).在web.xml文件中配置ActionServlet
为保证Web应用启动时加载TilesPlugin插件,应加入ActionServlet控制器,ActionServlet控制器在初始化时能加载所有的插件。
6) 6). 在JSP文件中插入Tiles组件,使用Tiles的组件属性。
4. 4. 在struts action中可以直接调用Tiles组件。
<action-mappings>
<action path="/tiles_action" scope="requests"
type="TilesAction" validate="true">
<forward name="success" path="net.tiles.yun"
redirect="false" />
action>
<action path="/tiles_action2" type="TilesAction" parameter="net.tiles.yun">
action>
action-mappings>
5. 5.Tiles组件的组合:
<definition name="common" path="/WEB-INF/pages/template.jsp">
<put name="menuTitle" value="tiles-definition" type="definition" />
......
definition>
6. 6. Tiles组件的扩展:
<definition name="common" extends="base-definition">
extends属性指定被扩展的父类Tiles组件。
7. 7.Tiles在JSP页面的使用:
(1)插入到JSP页面中:
(2)插入一个Tiles同时传递属性值:
<tiles:insert attribute="header">
<tiles:put name="menuTitle" beanName="menuTitle"/>
<tiles:put name="graphics" beanName="graphics"/>
tiles:insert>
<tiles:insert attribute="breadcrumbs">
<tiles:put name="workflow" beanName="workflow" />
<tiles:put name="message" beanName="message" />
<tiles:put name="graphics" beanName="graphics" />
tiles:insert>
(3)作为String来得到一个属性
<tiles:getAsString name=" title ">
(4)通过引用属性来插入Tiles
<tiles:insert attribute="header">
5.理解tiles的变量作用范围
记住 Tiles 框架定义了一个称为“tile 范围”的附加范围,它与页面范围类似。
像页面范围一样,tile 范围比请求范围更私有。Tile 范围允许 tile 用户给 tile 传递变量
(称为参数)。本质上,它使得页面像函数一样可调用。
嵌套的 tile 不会和它们的父亲共享相同的 tile。当前 tile 的 tile 范围已在显示嵌套
的 tile 之前得到保存。在嵌套的 tile 结束之后,父亲的 tile 范围将恢复到请求中。
这个神奇的特性是在 InsertTag (org.apache.struts.taglib.tiles.InsertTag) 类的嵌套类
InsertHandler 中实现的。
6.tiles:useAttribute 标签
- <tiles:useAttribute id="user"
- name="user"
- classname="rickhightower.UserDomainObject"
- />
- <tiles-definitions>
- <definition name="siteLayoutDef" path="/siteLayout.jsp">
- <put name="title" value="Rick Hightower Stock Quote System" />
- <put name="header" value="/header.jsp" />
- <put name="footer" value="/footer.jsp" />
- <put name="content" type="string">
- Content goes here
- put>
- definition>
因此 tiles:useAttribute 将把 user 对象从 tile 范围复制到页面范围。一旦 bean 得到定义,
您就能够像使用页面范围中定义的任何 bean 一样使用它:
7.tiles:importAttribute
tiles:importAttribute 标签将 tile 范围中的属性导入到页面范围。它类似于 tiles:useAttrribute 标签,但它更接近猎枪而不是解剖刀。它是懒散的、肮脏的和便宜的;
这有效地将条目列表从 tile 范围拷贝到页面范围。
注意: tiles:importAttribute 可拷贝到任何指定的范围。
默认情况下,tiles:importAttribute 将所有这些属性拷贝到页面范围。你也可以通过使用范围属性将这些属性拷贝到其他范围。
发表评论
- 浏览: 70581 次

- 详细资料
搜索本博客
我的相册
共 1 张
最近加入圈子
最新评论
-
中文最新EJB3.0实例教程下 ...
多谢多谢,传播知识
-- by jiage17 -
StringUtils工具类的使用
...
-- by zpg -
ajax/dwr/struts实例开发 ...
XMLHttpRequest了,
-- by linyang2903 -
hibernate数据加载get/lo ...
这个网址打不开了http://www.hour41.com/blog/hour4 ...
-- by e3002 -
中文最新EJB3.0实例教程下 ...
太感谢了!
-- by angelabird






评论排行榜