JSF中的多页面导航中的问题

时间:2010-06-23 07:24:39

标签: java jsp jsf navigation

我在JSF中实现菜单导航时遇到问题我在使用一个header.jsp,它包含在所有其他jsps中,从主页面向前导航工作正常但是如果我想使用下拉菜单转到任何其他页面我收到javascript错误,因为f:没有价值。

这是我的header.jsp菜单部分

<li><a href="#" class="MenuBarItemSubmenu">Fund Maintenance</a>
   <ul>
     <li class="bottomline"><h:commandLink value="General Ledger Mapping" action="#{fyeSelection.getGLMappingSelection}"></h:commandLink>
     <li class="bottomline">
       <h:commandLink value="File Upload" action="#{fyeSelection.getFYEUploadScreen}"></h:commandLink>
     </li>
     <li class="bottomline">
       <h:commandLink value="Provision Lock Down" action="#{fyeSelection.getProvisionScreen}"></h:commandLink>
     </li>
     <li class="bottomline">
       <h:commandLink value="Copy Provision for Tax Return" action="#{fyeSelection.getCopyProvisionTaxScreen}"></h:commandLink>
     </li>
   </ul>
 </li>

faces-config.xml就像:

<managed-bean>
  <description>FYE Selection Screen</description>
  <managed-bean-name>fyeSelection</managed-bean-name>
  <managed-bean-class>
   com.bbh.tea.web.managedbeans.FisicalYearEndSelection</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>

 </managed-bean>
<navigation-rule>
  <from-view-id>/views/dashboardtemplate.jsp</from-view-id>
  <navigation-case>
   <from-outcome>ProvisionScreen</from-outcome>
   <to-view-id>/views/provisionpackagelockdown.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>


 <navigation-rule>
  <from-view-id>/views/dashboardtemplate.jsp</from-view-id>
  <navigation-case>
   <from-outcome>CopyProvisionTax</from-outcome>
   <to-view-id>/views/copyprovisionfortaxreturn.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>

 <navigation-rule>
  <from-view-id>/views/dashboardtemplate.jsp</from-view-id>
  <navigation-case>
   <from-outcome>GLMappingSelection</from-outcome>
   <to-view-id>/views/generalledgerselection.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>

,班级就像

/**
  * @return the ProvisionScreen(screen)
  */
 public String getProvisionScreen() {
  return "ProvisionScreen";
 }

 /**
  * @return the CopyProvisionTax(screen)
  */
 public String getCopyProvisionTaxScreen() {
  return "CopyProvisionTax";
 }

 /**
  * @return the FYEUploadScreen(screen)
  */
 public String getFYEUploadScreen() {
  return "FYEUploadScreen";
 }

感谢任何帮助或建议

提前致谢


感谢宝贵的意见。是的你是对的,我使用的是内部,但由于我是JSF的新手,我不知道标签的正确用法。现在,使用后它工作正常。以前我尝试更改faces-config.xml而不是运气,因为我遇到了一些使用tree-id的编译问题。我还有一个小问题,我注意到Eclipse Galileo没有为ui:标签提供内容支持。是否有任何特定原因或我需要更改Eclipse中的设置。

再次感谢您的帮助。

此致 拉维

2 个答案:

答案 0 :(得分:0)

我找到了解决方案。

我们需要使用<h:outputLink代替h:commandLink

由于

答案 1 :(得分:0)

Commandlinks需要在POST表单中。这一切都放在<h:form>内吗?它使用JavaScript提交父表单。您获得的JavaScript错误可能与它无法在HTML DOM中找到父表单元素有关。

无论如何,使用输出链接进行导航是更好的选择(SEO!)。所以继续吧。