2010-01-09 139 views
0

您好我想取出2 FACES JSPS中的常見內容,並將其放入一個jsp中並在該FACESJSP中包含兩個選項卡,這兩個選項卡將顯示不同內容對示例代碼的任何幫助?重構JSP頁面

+2

你能否提供標題摘要?我認爲讓人們更容易理解 – 2010-01-09 12:28:05

+0

最易理解的重構:選擇JSP:s,shift + delete,獲得任何其他Web框架。 – Esko 2010-01-09 14:25:27

回答

1

這取決於視圖技術問題。在JSP中,您可以使用<jsp:include>。在Facelets中,您可以使用<ui:include><ui:composition>

在JSP上使用JSF時,需要確保每個包含頁面都有自己的<f:subview>唯一 ID。

基本例如:

main.jsp

<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<f:view> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
     <head> 
      <title>Main page</title> 
     </head> 
     <body> 
      <jsp:include page="header.jsp" /> 
      <h2>Content</h2> 
      <jsp:include page="footer.jsp" /> 
     </body> 
    </html> 
</f:view> 

header.jsp

<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 

<f:subview id="header"> 
    <h1>Header</h1> 
</f:subview> 

footer.jsp

<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 

<f:subview id="footer"> 
    <h3>Footer</h3> 
</f:subview> 

你Ç甚至動態地包括頁面,例如

<jsp:include page="#{bean.page}" /> 

其中#{bean.page}可以返回一個頁面相對URL一樣pagename.jsp

在Facelets上使用JSF時(你不是,但這只是非正式的),Facelets的例子可以在他們的developer guide中找到。它比JSP強大得多,非常適合JSF。