2011-10-01 43 views
4

我想要實現的是類似於asp.net中的母版頁。我正在關注tutorial,但是我可能錯過了某些東西,因爲我已經將我的header.jspf和footer.jspf添加到WEB-INF/jspf文件夾,並且index.jsp位於WEB-INF之外。我在web.xml中添加了信息,以便某些jsp頁面應該自動添加頁眉和頁腳。問題可能是index.jsp無法訪問WEB-INF文件夾內的任何內容,但我認爲我已經在教程的前一步中解決了這個問題。當我運行該項目時,我得到的是index.jsp剩下的所有頁眉和頁腳內容。我不想使用:<%@include file="header.jspf" %><..jsp:include...>是否可以在不使用jsp:include?的情況下將jspf文件添加到jsp頁面?

截圖:

Screenshot of the project

的web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.0" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <jsp-config> 
     <jsp-property-group> 
      <description>header and footer settings</description> 
      <url-pattern>/index.jsp</url-pattern> 
      <url-pattern>/WEB-INF/view/*</url-pattern> 
      <include-prelude>/WEB-INF/jspf/header.jspf</include-prelude> 
      <include-coda>/WEB-INF/jspf/footer.jspf</include-coda> 
     </jsp-property-group> 
    </jsp-config> 
</web-app> 

header.jspf中:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>Webshop</title> 
</head> 
<body> 
    <h1>Webshop</h1> 

footer.jspf:

</body> 
</html> 
+1

爲什麼你不想使用<%@ include文件=「標頭.jspf「%>和<.. jsp:include ...> ?? ?? – Javaguru

+0

好吧,這不是什麼大問題,我只是想要一種方法,不必爲每個jsp添加相同的內容,但是添加到每個jsp的兩行不成問題。我只想知道是否有方法通過web.xml文件添加頁眉和頁腳。 –

+0

所以..你可以使用SiteMesh。您可以創建一個模板頁面,用於項目中的每個頁面,然後只有特定的網站內容位於實際的jsp網站中。 – Javaguru

回答

0

我也這樣做的教程,當我使用Tomcat作爲服務器也將不包括頁眉和頁腳,我必須使用GlassFish服務器,有沒有辦法讓tomcat包含頁眉和頁腳?

編輯:

與此一更換默認標籤似乎已經解決了使用Tomcat作爲服務器的問題

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/TR/xmlschema-1/" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> 
+0

歡迎使用StackOverflow。請使用右上角的* Ask Question *按鈕提出新問題。 –

相關問題