在做web应用开发时,经常有需求需要根据配置的参数来动态的更改页面的布局或头部和尾部,实现的框架有很多,比如说tiles,sitemesh;在这里我讲一下如何在运行期动态更新tiles的definition;
需求是:在应用中需要根据平台参数来展示不同页头页脚,在tiles中配置了页头的definition,如下:
<definition name="header"
template="/WEB-INF/jsp/common/header.jsp" />
如今需要根据平台的标识来动态指定header.jsp,如电信进来指定为114header.jsp,移动进来指定为1860header.jsp,实现的办法是配置definition的prepare属性,此属性的值为实现ViewPreparer,在此实现类得到平台标识,并根据平台标识设置相应的header jsp(平台标志位在web应用启动的时候设置入web上下文,如session中)
实现类操作如下:
public class PlatFormViewPreparer implements ViewPreparer {
/**
* 功能:
*
* @param tilesContext
* @param attributeContext
*/
public void execute(TilesRequestContext tilesContext,
AttributeContext attributeContext) {
String platformIdString = (String) SessionUtil.getlVar("PLATFORMID");
if (platformIdString == null){
platformIdString = "";
}
attributeContext.setTemplateAttribute(new Attribute("/WEB-INF/jsp/common/"+platformIdString+"header.jsp"));
}
}
重新配置header definition
<definition name="header"
template="/WEB-INF/jsp/common/header.jsp" preparer="PlatFormViewPreparer "/>
分享到:
相关推荐
### Struts 中 Tiles 标签详解 #### 一、引言 在Web开发领域,尤其在使用Struts框架时,为了提高代码复用性及页面布局的灵活性,...此外,Tiles还支持属性传递和动态内容生成等功能,为开发者提供了极大的便利。
2. **动态构建和装载页面**:Tiles可以在运行时根据需要动态地构建页面。这使得开发者可以根据不同的业务需求快速组装页面,无需手动编写大量的HTML代码。 3. **定义可重用的Tiles组件**:Tiles组件是构成页面的基本...
Tiles 支持 attribute 的动态渲染,这意味着属性值可以在运行时根据不同的条件进行计算和更新。 #### 多容器支持和安全支持 Tiles 支持在多种 Web 容器中运行,并提供了安全机制,确保在多用户环境中数据的安全和...
这种方式允许我们在多个页面中复用相同的布局,同时还能轻松地更改和扩展页面结构。 总结来说,将Tiles与Struts2结合使用,可以极大地提高开发效率和代码可维护性。通过清晰地划分页面组件和定义布局模板,我们可以...
- **Tiles Definition**: 在Tiles中,定义是页面布局的蓝图,它描述了如何将不同的Tiles组合在一起。每个定义都包含了多个“部件”(或Tiles),并指定了它们在最终页面上的位置和排列方式。 - **Tiles Container*...
- **动态属性(Dynamic Attributes)**:Tiles允许在运行时传递动态参数,这些参数可以在页面中使用,增强页面的灵活性。 - **属性传递**:通过`<put>`标签,可以将属性值注入到Tiles定义中,这些值可以在包含的...
3. **动态组装**:Tiles允许在运行时动态地组合和渲染页面。这意味着开发者可以基于用户角色、请求参数或其他条件动态决定页面的组成。 4. **配置管理**:通过Tiles配置文件,开发者可以定义各个组件以及它们如何...
- **运行时组合(Runtime Composition)**:允许在运行时动态地决定页面的组成,增强了灵活性。 - **视图预处理器(View Preparers)**:在页面呈现之前执行的代码,可以用来处理数据或执行特定任务。 - **渲染工具...
接着,在`tiles.xml`或`tiles-config.xml`配置文件中定义页面布局,包括模板和属性。然后,在JSP页面中,可以使用Tiles的标签库(例如`<tiles:insertAttribute>`和`<tiles:putAttribute>`)来插入和设置页面内容。 ...
Tiles配置文件是整个框架的核心组成部分之一,它通常命名为`tiles-defs.xml`,是一个标准的XML文件,用于定义Tiles组件的名称、路径以及其他属性。 ##### 示例配置文件结构: ```xml <tiles-definitions> ...
Tiles框架的配置是Java Web开发中用于构建动态页面布局的重要工具。它允许开发者将一个页面分割成多个组件(tiles),每个组件可以独立设计和重用,然后组合成一个完整的页面。这种方式极大地提高了页面设计的效率和...
Tiles框架是Apache Software Foundation发起的一个开源项目,它为开发者提供了创建复合式网页的能力,允许在运行时动态地将内容插入预定义的页面布局中。 在J2SE中,AWT和Swing提供了多种布局管理器,如FlowLayout...
- **定义(definition)**:在`tiles-defs.xml`中定义瓷砖,包括其内容、属性等。 - **动态插入**:可以基于请求参数或其他条件动态地决定插入哪个瓷砖。 6. **优点** - **代码复用**:通过瓷砖的定义,可以重复...
在实际项目中,可以根据需求进一步扩展Tiles配置,比如使用表达式语言(EL)动态注入内容,或者创建更复杂的模板结构。Tiles框架的灵活性和模块化设计使得Web应用程序的维护和扩展变得更加容易。
在MyTiles这个示例中,可能包含了上述所有文件,包括struts-config.xml、tiles-defs.xml、Action类、JSP页面等,你可以通过查看和运行这些文件来更深入地了解Struts和Tiles的集成使用。同时,这样的组合不仅方便了...
5. **commons-beanutils.jar**:在处理Tiles组件属性时,可能会用到Apache Commons BeanUtils库,它提供了对JavaBeans的便捷操作。 6. **commons-collections.jar**:这个库提供了各种集合操作的工具类,Tiles框架...
5. **在JSP中使用Tiles**:在视图层,JSP页面可以包含Tiles,使用`<tiles:insert>`标签插入定义的Tiles。 Struts-Tiles的特性包括: - **复用性**:由于页面被分解为独立的部分,可以方便地在多个页面中重用。 - **...
在"struts2 tiles实例 eclipse下运行"这个项目中,我们将深入理解如何在Eclipse开发环境中配置和运行一个基于Struts2和Tiles的Web应用。首先,确保你已经安装了Eclipse IDE,并且配置好了JDK以及Tomcat服务器。接着...
这个核心库负责处理页面布局定义,解析配置文件(通常是tiles.xml),并根据这些配置动态地组合页面。它还提供了对tiles的生命周期管理和错误处理。 最后,"tiles-jsp-2.0.6.jar"是专门为JSP(JavaServer Pages)...
5. **JSP页面引用**: 在JSP页面中,通过Tiles标签库引用Tiles定义,实现页面的动态组合。 通过Struts2和Tiles的集成,开发者可以更方便地管理页面结构,实现页面的复用和模块化。同时,Struts2的Action和...