2011-04-06 82 views
2

只要JSPX必須是一個格式良好的XML,就沒有辦法在獨立的包含文件中包含標記的beginig,因爲它必須關閉。JSPX導致複製粘貼代碼?

看起來您必須始終包含在所有主頁中? 還是我想念什麼?

回答

2

Apache Tiles據說解決了這個問題,它允許您對JSPX組件進行模板化和重用。

更新答案:

在你views.xml,你會像下面這樣:

<definition extends="error" name="dataAccessFailure"> 
    <put-attribute name="body" value="/WEB-INF/views/dataAccessFailure.jspx"/> 
</definition> 

<definition extends="default" name="index"> 
    <put-attribute name="body" value="/WEB-INF/views/body/index.jspx"/> 
    <put-attribute name="side" value="/WEB-INF/views/side/index.jspx"/> 
</definition> 

錯誤和默認的是我在佈局目錄定義的佈局,錯誤是單列布局,默認爲兩列布局。

在佈局目錄

也就是layouts.xml:

<tiles-definitions> 

    <definition name="default" template="/WEB-INF/layouts/default.jspx"> 
     <put-attribute name="header" value="/WEB-INF/views/header.jspx" /> 
     <put-attribute name="menu" value="/WEB-INF/views/navigation.jspx" /> 
     <put-attribute name="footer" value="/WEB-INF/views/footer.jspx" /> 
    </definition> 

    <definition name="error" template="/WEB-INF/layouts/error.jspx"> 
     <put-attribute name="header" value="/WEB-INF/views/header.jspx" /> 
     <put-attribute name="menu" value="/WEB-INF/views/navigation.jspx" /> 
     <put-attribute name="footer" value="/WEB-INF/views/footer.jspx" /> 
    </definition> 

</tiles-definitions> 

我沒有親自手工完成阿帕奇磚的整合,我只是用Spring Roo的生成一個完整的堆棧我,然後添加/根據需要刪除東西。

+0

謝謝你的回答,非常感謝你,請給我一個例子,告訴我如何才能做到這一點,只需在單獨的文件中打開標籤? – Artem 2011-04-24 17:52:05

+0

我用一些基本的瓷磚代碼更新了答案。 每個文件都需要有效的XML,與PHP不同的是,您可以在不同的文件中打開html標籤。 – 2011-04-25 13:32:24

+0

因此,基本上,您確認了我最糟糕的期望:如果我想在一個文件中打開標籤並在另一個文件中關閉(如用於html標籤),我將不得不選擇JSP而不是JSPX?我幫你解決了嗎? – Artem 2011-05-05 00:25:40