0

是否可以在 decorator.xml 中添加一些可配置的参数?我需要做类似的事情:

<decorator name="sample" page="sample.jsp">
      <pattern>/sample.${my.own.ext}</pattern>
</decorator>

<decorator name="example" page="example.jsp">
      <pattern>/example.${my.own.ext}</pattern>          
</decorator> 

并在一些配置文件 mycfg.parameters 中放置:

my.own.ext=myhtm

因此可以更改为其他服务

除了为其他服务创建许多 decorator.xml 文件之外,还有其他解决方案吗?

4

1 回答 1

0

您可以在构建时使用Maven 资源过滤来替换 decorator.xml 文件中的参数。

在您的 maven pom.xml 文件中,您可以像这样定义属性/资源:

<project>
  ...
  <properties>
    <my.own.ext>html</my.own.ext>
  </properties>

  <resources>
    <resource>
      <directory>src/main/webapp</directory>
      <filtering>true</filtering>
      <includes>
        <include>WEB-INF/decorator.xml</include>
      </includes>
    </resource>
  <resources>
  ...
</project>

如果您不使用 maven ,您可以在 Ant 中执行相同的操作。

或者,您可以使用Sitemesh Configuration: Medium Level, Assembly 中描述的方法在运行时使用 init-param/system 属性变量配置装饰器选择器。例如:

String extension = System.getProperty("extension");
javax.servlet.Filter filter = new SiteMeshFilterBuilder()
    .addDecoratorMapping("/sample." + extension, "/sample.jsp")
    .addDecoratorMapping("/example." + extension, "/example.jsp")
    .build();
于 2013-01-28T10:42:53.617 回答