我正在尝试将sitemesh包含在我的spring-mvc web应用程序中。 我把它添加到我的web.xml:
<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>
我知道,master.jsp将应用于我的webapp中的每个页面,但它只能通过index.jsp来完成。
对于jsp文件,这些文件位于WEB-INF / views中的某些文件夹中(参见图片),它没有完成。
这可能是什么原因? 谢谢!!
修改
vwies / admin-folder中的一个页面:
<%@ 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 :(得分:0)
在模式声明中使用/ *代替/。
或者如果它没有解决问题,请查看您的jsp文件并检查您是否有html和body标签。如果没有,sitemesh不能用装饰器中声明的标签替换标签。