2014-06-16 78 views
0

我知道如何創建JSF 2.0 servlet,並且知道如何創建portlet,但是我在組合這兩種技術時遇到了問題。我的JSF portlet運行良好,直到我必須通過<h:commandLink />調用我的支持bean的方法。當我點擊這些鏈接時,當前頁面被重新加載並且沒有方法被調用。我想我的應用程序需要一些額外的配置。需要爲了得到這樣的工作命令鏈接做什麼:Websphere中的JSF 2.0驅動portlet - 如何實現命令鏈接

<h:commandLink action="#{backingBean.doSomething}" /> 

請注意,我用的WebSphere 8門戶服務器提供了一個JSF 2.0 portlet的橋樑。

編輯

我在這裏看到一個基本的矛盾:

  • 的Portlet API負責生成的URL - 生成有效的門戶網站的URL
  • JSF負責生成的URL - 生成有效的JSF -URL

我的託管bean使用註釋進行配置:

@ManagedBean(name = "backingBean") 
@ViewScoped 
public class entryEditController 
{ 
    public String doSomething() 
    { 
     return "result.xhtml"; 
    } 
} 

這是我的faces-config.xml中

<?xml version="1.0" encoding="UTF-8"?> 
    <faces-config 
      xmlns="http://java.sun.com/xml/ns/javaee" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" 
      version="2.0"> 
     <application> 
      <view-handler>com.ibm.faces20.portlet.FaceletPortletViewHandler</view-handler> 
      <el-resolver>com.ibm.faces20.portlet.PortletELResolver</el-resolver> 
      <resource-handler>com.ibm.faces20.portlet.httpbridge.PortletResourceHandler</resource-handler> 
     </application> 
    </faces-config> 
+0

你有沒有使用配置了託管bean註釋或XML中的faces-config.xml?請包含更多信息 – zargarf

回答

0
  1. 更新到WAS 8.0.0.8
  2. 如果你的bean是@SessionScoped@ViewScoped你必須把它添加到您的網頁。 xml:

    <context-param> 
        <param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name> 
        <param-value>false</param-value> 
    </context-param> 
    
  3. 在步驟2之前,我添加了一個新的命令按鈕無效的操作值。這導致驗證錯誤。在驗證錯誤,不執行命令=>確保沒有任何驗證錯誤,例如通過增加<h:messages />到您的模板
  4. 閱讀這樣的回答:https://stackoverflow.com/a/2120183/395879
相關問題