【问题标题】:How to invoke a method with Openfaces/JSF without rendering page?如何在不渲染页面的情况下使用 Openfaces/JSF 调用方法?
【发布时间】:2011-05-25 16:56:59
【问题描述】:

我正在尝试使用 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 解决这个问题吗?

【问题讨论】:

  • 哪个IE版本?控制台中有任何 JS 错误吗?我不做 OpenFaces,但这听起来很像有一个 JS 错误,因此 ajax 东西坏了,因此 JSF 页面优雅地降级为无 ajax 页面。如果是这种情况,请尝试升级 OpenFaces。
  • IE 6 和 8。没有 JS 错误。不过,我已经找到了应对的方法。看看我自己对这个问题的回答。感谢您的帮助。

标签: java ajax jsf jsf-2 openfaces


【解决方案1】:

jsf2.0中可以使用&lt;f:ajax&gt;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
    }

}

另见

【讨论】:

  • 谢谢吉加尔·乔希。你给了我解决问题的关键提示!
【解决方案2】:

谢谢吉加尔·乔希。你给了我关键提示。它适用于以下代码行:

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

【讨论】:

  • 那么这是 IMO OpenFaces 中的一个错误。如果您喜欢 OpenFaces,请向他们报告。
猜你喜欢
  • 2012-11-11
  • 1970-01-01
  • 2011-10-31
  • 2018-09-19
  • 2011-02-11
  • 1970-01-01
  • 1970-01-01
  • 2017-12-17
  • 1970-01-01
相关资源
最近更新 更多