2010-01-09 136 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。