2011-05-25 110 views
1

我試圖用Openfaces 3調用Bean中的Save方法。雖然Firefox不會呈現頁面,但Internet Explorer卻可以。如何在不渲染頁面的情況下使用Openfaces/JSF調用方法?

我目前使用此行代碼:

<o:commandLink value="Save" action="#{beanX.save}"> 
    <h:graphicImage url="/images/save_48.png" /> 
</o:commandLink> 

,但我試圖o:ajax還有:

<o:commandLink value="Save" action="#{beanX.save}"> 
    <h:graphicImage url="/images/save_48.png" /> 
    <o:ajax event="click" render="@none" /> 
</o:commandLink> 

任何想法?


我發現了一種處理使用標準JSF組件的方法。任何想法如何解決與o:commandLink這個問題?

+0

哪個IE版本?控制檯中的任何JS錯誤?我不做OpenFaces,但這聽起來很像是有一個JS錯誤,因此ajax的東西壞了,因此JSF頁面優雅地降級爲無jjless頁面。如果是這種情況,請嘗試升級OpenFaces。 – BalusC 2011-05-25 17:13:52

+0

IE 6和8.沒有JS錯誤。但是,我找到了一個處理方法。看看我自己對這個問題的回答。感謝您的幫助。 – 2011-05-25 17:18:14

回答

1

謝謝Jigar喬希。你給了我關鍵的提示。它的工作原理與此代碼行:

<h:commandLink value="Save"> 
    <h:graphicImage url="/images/save_48.png" /> 
    <f:ajax event="click" render="@none" listener="#{beanX.save}" /> 
</h:commandLink> 

我一直在這個網站之前,我並沒有在假設o:commandLink可能無法處理這一思路,可能是一個錯誤?

使用h:commandLink而不是o:commandLinkf:ajax使用listener屬性解決了我的問題。

+0

然後它是IMO在OpenFaces中的一個錯誤。如果您喜歡OpenFaces,請將其報告給他們。 – BalusC 2011-05-25 17:20:31

1

您可以使用<f:ajax>render屬性在JSF2.0

<h:form> 
     <h:inputText value="#{managedBean.val1}" > 
     <f:ajax event="keyup" render="result" listener="#{managedBean.someThingToDoListener}"/> 
     </h:inputText> 
     <h:inputText value="#{managedBean.val2}" > 
     <f:ajax event="keyup" render="result" listener="#{managedBean.someThingToDoListener}"/> 
     </h:inputText> 

     <h:outputText id="result" value="#{managedBean.result}"/> 
</h:form> 

@ManagedBean(name = "managedBean") 
public class Bean { 
    private String val1; // getter and setter 
    private String val2; // getter and setter 
    private String res; // getter and setter 
    ... 

    public void someThingToDoListener(AjaxBehaviorEvent event) { 
     //res = some processing 
    } 

} 

請參見

+0

謝謝Jigar Joshi。你已經給了我關鍵的提示來解決我的問題! – 2011-05-25 17:16:00

+0

不客氣。 – 2011-05-25 17:20:35

相關問題