2013-01-07 32 views
1

我想包括sitemesh到我的spring-mvc web应用程序。 我将此添加到我的web.xml:sitemesh和spring:只有index.jsp被装饰

<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>/*</url-pattern> 
</filter-mapping> 

我decorators.xml文件:

<decorators defaultdir="/WEB-INF/decorators"> 
    <decorator name="master" page="master.jsp"> 
     <pattern>/</pattern> 
    </decorator> 
</decorators> 

而且master.jsp文件:

<%@ taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title> 
     :: LiVis :: <decorator:title /> :: 
    </title> 
    <style type="text/css">@import "resources/css/generalStyle.css";</style> 
    </head> 
    <body> 
     <div id="wrapper"> 
      <div id="header"> 
       <div id="headerPicture"> 
        <img id="livis" src="resources/images/village.png" alt="livis" /> 
       </div> 
       <div id="headerMenu"> 
        <ul id="navigation"> 
         <li><a href="admin/insertEntryForm.html">Insert</a></li> 
         <li>Table-View</li> 
         <li>Graph-View</li> 
         <li>About</li> 
        </ul> 
       </div> 
      </div> 
      <div id="main"> 
       <decorator:body /> 
      </div> 
     </div> 
    </body> 
</html> 

我thougt,即master.jsp将应用于我的webapp中的每个页面,但只能使用index.jsp完成。 要其他jsp文件,这些文件位于WEB-INF/views中的某些文件夹中(请参见图片),但尚未完成。 folder-structure in WEB-INF

这可能是什么原因? 谢谢!

编辑

一个页面在vwies /管理文件夹:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%> 
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<html> 
<head> 
<title>Registration Page</title> 
</head> 
<body> 

<form:form method="POST" action="/LiteratureVisualization/admin/insertTest" modelAttribute="object"> 
    <table> 
     <tr> 
      <td>First name:</td> 
      <td><form:input path="author.firstname" /></td> 
     </tr> 
     <tr> 
      <td>Last name:</td> 
      <td><form:input path="author.lastname" /></td> 
     </tr> 
     <tr> 
      <td>Title:</td> 
      <td><form:input path="publication.title" /></td> 
     </tr> 
     <tr> 
      <td>Subtitle:</td> 
      <td><form:input path="publication.subtitle" /></td> 
     </tr> 
     <tr> 
      <td>Abstract:</td> 
      <td><form:input path="publication.abstr" /></td> 
     </tr> 
     <tr> 
      <td>Year of Launch:</td> 
      <td><form:input path="publication.launchYear" /></td> 
     </tr> 
     <tr> 
      <td>Month of Launch:</td> 
      <td><form:input path="publication.launchMonth" /></td> 
     </tr> 
     <tr> 
      <td>Volume:</td> 
      <td><form:input path="publication.volume" /></td> 
     </tr> 
     <tr> 
      <td>Number:</td> 
      <td><form:input path="publication.number" /></td> 
     </tr> 
     <tr> 
      <td>Sort of:</td> 
      <td><form:input path="publication.sortOf" /></td> 
     </tr> 
     <tr> 
      <td>Published In:</td> 
      <td><form:input path="publication.publishedIn" /></td> 
     </tr> 
     <tr> 
      <td colspan="2"><input type="submit" value="Register"></td> 
     </tr> 
    </table> 
</form:form> 
</body> 
</html> 

回答

0

使用/ *代替/在你的模式声明。

或者如果它不能解决问题,请查看您的jsp文件并检查是否有html和body标签。如果没有,sitemesh不能替换装饰器中声明的标签。

+0

这没有奏效...是否有可能,在管理员,浏览器,一般和图文件夹的jsp的无法找到? – bethlis

+0

你能编辑你的文章并向我们展示一个页面到这个文件夹中吗?您是否尝试添加如下模式:/ views/admin/*来测试这是一个路径问题还是一个jsp问题? –