如何在不渲染页面的情况下使用Openfaces/JSF调用方法?
我试图用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
这个问题?
谢谢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:commandLink
和f:ajax
使用listener属性解决了我的问题。
然后它是IMO在OpenFaces中的一个错误。如果您喜欢OpenFaces,请将其报告给他们。 – BalusC 2011-05-25 17:20:31
您可以使用<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
}
}
请参见
谢谢Jigar Joshi。你已经给了我关键的提示来解决我的问题! – 2011-05-25 17:16:00
不客气。 – 2011-05-25 17:20:35
哪个IE版本?控制台中的任何JS错误?我不做OpenFaces,但这听起来很像是有一个JS错误,因此ajax的东西坏了,因此JSF页面优雅地降级为无jjless页面。如果是这种情况,请尝试升级OpenFaces。 – BalusC 2011-05-25 17:13:52
IE 6和8.没有JS错误。但是,我找到了一个处理方法。看看我自己对这个问题的回答。感谢您的帮助。 – 2011-05-25 17:18:14