2012-02-08 30 views
0

我有一个index.xhtml页面上市书籍。点击一本书后,它会转到book.xhtml以显示该书的特定细节。有用。然而,我的项目即时使用Icefaces。当我添加一个Iceface组件时,ice:panelTabSet,到book.xhtml单击index.xhtml上的链接将不再重定向到book.xhtml了。任何人都可以解释这一点吗?为什么Icefaces组件不允许我的应用程序工作?

的index.xhtml

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:c="http://java.sun.com/jsp/jstl/core" 
     xmlns:ui="http://java.sun.com/jsf/facelets" 
     xmlns:f="http://java.sun.com/jsf/core"> 
    <h:head> 
     <title>BookShop</title> 

    </h:head> 
    <h:body> 

     <h:form> 
     <ul> 
    <ui:repeat value="#{bookCatelogBean.books}" var="book"> 
     <li> 
      <h:commandLink action="bookDetails">#{book.title} 
       <f:param name="id" value="#{book.id}" /> 
      </h:commandLink> 
     </li> 
    </ui:repeat> 
</ul> 
     </h:form> 

    </h:body> 
</html> 

book.xhtml

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:c="http://java.sun.com/jsp/jstl/core" 
     xmlns:ui="http://java.sun.com/jsf/facelets" 
     xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:ice="http://www.icesoft.com/icefaces/component"> 
    <h:head> 
     <title>BookShop</title> 

    </h:head> 
    <h:body> 

     #{book.title} 

     <h:graphicImage id="image1" value="#{book.coverImage}" /> 

     #{book.description} 

     <ice:panelTabSet styleClass="tabSet" tabPlacement="bottom" align="right"> 
      <ice:panelTab label="label1"> 
       <ice:outputText value="Label" /> 
      </ice:panelTab> 
      <ice:panelTab label="label2"> 
       <ice:outputText value="Label2" /> 
      </ice:panelTab> 
      <ice:panelTab label="label3"> 
       <ice:outputText value="Label3" /> 
      </ice:panelTab> 
     </ice:panelTabSet> 
    </h:body> 
</html> 
+0

你的服务器日志里有什么? – zeller 2012-02-08 16:54:03

+0

您正在使用Facelets,而不是JSP,因此请不要添加JSP标记。我已将其删除。 – BalusC 2012-02-08 19:21:32

回答

1

<h:commandLink>似乎并不指向任何现有的页面。您已将其设置为bookDetails,但目标视图ID为book(来自book.xhtml)。您也不需要在这里发布POST,它只会让链接无法被searchbots抓取,并且无法被最终用户标记。

改为使用<h:link>并将其outcome设置为book而不是bookDetails

<h:link value="#{book.title}" outcome="book"> 
    <f:param name="id" value="#{book.id}" /> 
</h:link> 

不要忘记删除<h:form>

相关问题