SiteMesh在项目中的配置

SiteMesh在项目中的配置
首先在web.xml里面增加siteMesh的配置:
<filter>
 <filter-name>sitemesh</filter-name>
 <filter-class>
  com.opensymphony.module.sitemesh.filter.PageFilter
 </filter-class>
</filter>
<filter-mapping>
 <filter-name>sitemesh</filter-name>
 <url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
 <filter-name>sitemesh</filter-name>
 <url-pattern>*.jsp</url-pattern>
</filter-mapping>
凡是提交的.do和.jsp的请求,都要经过siteMesh的处理,哈哈,当然html的就不用处理啦
另外在WEB-INF下面还有一个配置sitemesh.xml:
<sitemesh>
 <property name="decorators-file" value="/WEB-INF/decorators.xml" />
 <excludes file="${decorators-file}" />
 <page-parsers>
  <parser content-type="text/html"
   class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
 </page-parsers>
 <decorator-mappers>
  <mapper
   class="com.opensymphony.module.sitemesh.mapper.PageDecoratorMapper">
   <param name="property.1" value="meta.decorator" />
   <param name="property.2" value="decorator" />
  </mapper>
  <mapper
   class="com.opensymphony.module.sitemesh.mapper.FrameSetDecoratorMapper">
  </mapper>
  <mapper
   class="com.opensymphony.module.sitemesh.mapper.AgentDecoratorMapper">
   <param name="match.MSIE" value="ie" />
   <param name="match.Mozilla [" value="ns" />
   <param name="match.Opera" value="opera" />
   <param name="match.Lynx" value="lynx" />
  </mapper>
  <mapper
   class="com.opensymphony.module.sitemesh.mapper.PrintableDecoratorMapper">
   <param name="decorator" value="printable" />
   <param name="parameter.name" value="printable" />
   <param name="parameter.value" value="true" />
  </mapper>
  <mapper
   class="com.opensymphony.module.sitemesh.mapper.RobotDecoratorMapper">
   <param name="decorator" value="robot" />
  </mapper>
  <mapper
   class="com.opensymphony.module.sitemesh.mapper.ParameterDecoratorMapper">
   <param name="decorator.parameter" value="decorator" />
   <param name="parameter.name" value="confirm" />
   <param name="parameter.value" value="true" />
  </mapper>
  <mapper
   class="com.opensymphony.module.sitemesh.mapper.FileDecoratorMapper">
  </mapper>
  <mapper
   class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
   <param name="config" value="${decorators-file}" />
  </mapper>
 </decorator-mappers>
</sitemesh>
其实这个配置倒是一般是默认的。嘿嘿。不过我当时也研究了一下。不过主要的还是这个文件是在SITEMESH的JAR包中自动装载进来的,它决定了另外一个配置文件的位置和名字,就是decorators.xml:
<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/decorators">
 <decorator name="default" page="default.jsp" />
 <decorator name="defaulths" page="default_hs.jsp"/>
 <decorator name="main" page="main.jsp" />
 <decorator name="mainhs" page="main_hs.jsp"/>
</decorators>

这里配置了4个渲染的模板,同时也给这四个模板定义了名字。看看模板的内容,比如这个main.jsp:
<%@ include file="/common/taglibs.jsp"%>
<html>
 <head>
  <title>
   <decorator:title default="DV110.com" />
  </title>
  <%@ include file="/common/meta.jsp"%>
  <decorator:head />
 </head>
 <body id="homepage">
  <div id="header">
   <jsp:include page="/common/header.jsp" />
  </div>
  <div align="center" style="height:500px;">
   <table border="0" cellpadding="0" cellspacing="0" width="779" align="center">
    <tr>
     <td valign="top" >
      <%@ include file="/common/messages.jsp"%>
      <h1 align="center">
       <decorator:getProperty property="page.heading" />
      </h1>
      <decorator:body />
     </td>
    </tr>
   </table>
  </div>
  <div id="footer">
   <jsp:include page="/common/footer.jsp" />
  </div>
 </body>
</html>
以上是系统知道要用SiteMesh来处理后,要使用的模板。
以下是系统的页面,比如设备更新页面,会在页面中有个<meta name="decorator" content="default${dName}">
其中content=""这里面的名字就是我们配置的模板的名字。
<%@ page language="java" errorPage="/error.jsp" pageEncoding="UTF-8"
 contentType="text/html;charset=UTF-8"%>
<%@ include file="/common/taglibs.jsp"%>
<html>
 <head>
  <title>设备信息更新</title>
  <meta name="decorator" content="default${dName}">
 </head>
 <body>
  <html:form action="deviceVIS.do?method=updateDevice" method="post">
   <html:hidden property="id" />
   <table width="516" border="0" align="center">
    <tr>
     <td width="84">
      设备名称
     </td>
     <td width="288">
      <html:text property="name" />
     </td>
     <td width="122">
       
     </td>
    </tr>
    <tr>
     <td>
      安装地址
     </td>
     <td>
      <html:text property="installLocation" />
     </td>
     <td>
       
     </td>
    </tr>
    <td>
      
    </td>
    <td>
     <input type="submit" name="Submit" value="保存" />
     <input type="reset" name="cancel" value="重置" />
    </td>
    <td>
      
    </td>
    </tr>
   </table>
  </html:form>
 </body>
</html>

  

时间: 2024-08-04 11:04:59

SiteMesh在项目中的配置的相关文章

Android开发:《Gradle Recipes for Android》阅读笔记(翻译)2.5——在项目中共享配置

问题: 取出多个模块下相同的配置 解决方案: 在顶级gradle配置文件里面使用allprojects或者subprojects块 讨论: 当你在android studio中新建android项目时,IDE创建了一个两级的gradle项目,一个配置文件在根目录下,一个在叫app的模块目录下.顶级的build.gradle有几个叫allprojects的块: 这个块是gradle的语法,所以不只是在adroid项目中,在所有基于gradle的项目中都能使用.allprojects属性来源于Gra

ORM Nhibernate框架在项目中的配置

在项目中使用 Nhibernet 时,一定要将 配置文件 .xml  编译方式设置为 嵌入式资源,否则在运行项目时就会出现错误. 以下是hibernate.cfg.xml 的配置,在配置中使用的是 Mysql 数据库 <?xml version="1.0" encoding="utf-8" ?> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"&g

rem的在vue项目中使用配置,,浏览器的兼容性之Mate标签

在vue中配置rem 位置:在APP.vue的script中,在export default之外 (()=>{ let winW = document.documentElement.clientWidth, desW = 1440, htmlFont = winW / desW * 100; window.htmlFont = htmlFont; document.documentElement.style.fontSize = htmlFont + 'px'; })() 浏览器的兼容性之Ma

项目中Zookeeper配置参数笔记

ZooKeeper是以Fast Paxos算法为基础的,Paxos 算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos作了一些优化,通过选举产生一个leader (领导者),只有leader才能提交proposer,具体算法可见Fast Paxos.因此,要想弄懂ZooKeeper首先得对Fast Paxos有所了解. ZooKeeper的基本运转流程: 1.选举Leader. 2.同步数据. 3.选举Leade

webpack在项目中的配置

为什么要创建webpack.conflg.js 在执行webpack时会在项目的根目录寻找webpack.conflg.js,当然也可以通过--conflg来指定要运行的文件.webpack --config aa.js 打包过程中显示一些参数: 1.找到package.json 2.在scripts里添加如下代码(webpack后面的参数加什么参数,根据自己需要即可): "webpack":"webpack --config webpack.config.js --prog

log4net项目中如何配置,以下详解

log4net.config配置文件 <?xml version="1.0" encoding="utf-8"?> <log4net debug="false"> <appender name="RootAppender" type="log4net.Appender.RollingFileAppender"> <lockingModel type="lo

vuex的使用以及在项目中的配置

在main.js文件中 import Vue from 'vue' import App from './App.vue' import router from './router' import store from './store' import * as apiConfig from '@/common/api/config' // vue的自定义属性,可在vue文件中通过 this.apiConfig 调用 Vue.prototype.apiConfig = apiConfig new

软件开发工程师(JAVA)中级考试大纲-----四(四)Log4J的原理及配置;Log4J常用的API;在项目中应用日志框架Log4J关键类和接口介绍;Java properties配置文件log

log4j Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 1定义 log4j--log for java(java的日志) 在强调可重用组件开发的今天,除了

在ASP.NET MVC3项目中,自定义404错误页面

在Web开发中,用户体验是至关重要的,一个友好的网站自然少不了自定义404错误页面. 让笔者为大家介绍404错误页面在ASP.NET MVC3项目中的配置: 第一步,在项目的Web.config文件中找到节点<system.web> 在此节点下添加配置        <customErrors mode="On" defaultRedirect="~/Index/Error404">          <error statusCode