我需要使用JSF 2.3 commandScript从javascript函数调用CDI Beans。不幸的是,我无法在屏幕上呈现更新的CDI bean字段。 简而言之,这是我的JSF页面:
<body>
<h:form id="formpanel">
<h:commandScript execute="@form" name="submitForm" action="#{translatorBean.translate()}" render=":output" />
<h:inputText value="#{translatorBean.input}" />
<h:button value="submit" onclick="submitForm()" />
</h:form>
Translated:
<h:outputText id="output" value="#{translatorBean.translated}" />
</body>
我期待,当我点击&#34;提交&#34; javascript submitForm调用CDI&#34; translatorBean.translate()&#34;并使用&#34; translatorBean.translated&#34;
的值更新outputTextCDI Bean非常简单,包含字段和操作方法:
@Named
@RequestScoped
public class TranslatorBean implements Serializable {
private String input;
private String translated;
// getter setter fields
public void translate() {
translated = Utils.translate(input);
}
. . . . .
}
最后,翻译方法被调用,但页面只是重新加载而没有更新&#34;翻译&#34;输出。 我可能在JSF页面上犯了一些错误,尽管我无法弄清楚是什么。 我使用ee8配置文件在WildFly 12上运行它。 感谢