如何在不渲染页面的情况下使用Openfaces / JSF调用方法?

时间:2011-05-25 16:56:59

标签: java ajax jsf jsf-2 openfaces

我正在尝试使用Openfaces 3在bean中调用Save方法。虽然Firefox没有呈现页面,但是Internet Explorer会这样做。

我目前正在使用此代码行:

<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解决此问题的任何想法吗?

2 个答案:

答案 0 :(得分:1)

您可以在jsf2.0中使用<f:ajax>render属性

<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
    }

}

另见

答案 1 :(得分:1)

谢谢Jigar Joshi。你给了我关键的提示。它适用于以下代码行:

<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属性解决了我的问题。