[英]JSF how to submit a form via onchange of a selectOneRadio
我正在尝试在选择selectOneRadio值时提交表单。 我有下面的代码,但它没有进入我的#{contentEditorBacking.addNewsArticle}
。
当点击selectOneRadio时,有谁知道我怎么能进入该方法?
<p:panel header="News Article Title">
<h:panelGrid columns="2">
<h:outputLabel for="title" value="Title" style="font-weight: bold;"/>
<p:inputText id="title" required="true" value="#{contentEditorBacking.newsTitle}" />
<h:outputLabel value="Site" />
<p:selectOneRadio value="#{contentEditorBacking.selectedNews}" layout="pageDirection" onchange="submit()">
<f:selectItem itemLabel="Public" itemValue="Public" />
<f:selectItem itemLabel="Member" itemValue="Member" />
</p:selectOneRadio>
<p:commandButton value="submit" action="#{contentEditorBacking.addNewsArticle}" />
</h:panelGrid>
</p:panel>
两个问题:
click
事件。 <p:commandButton>
是一个ajax按钮,它不像JS submit()
那样为同步提交做好准备。 只需使用<p:ajax>
以便提交由ajax执行。 请注意,您不需要指定event
属性,它默认为已click
。
<p:selectOneRadio value="#{contentEditorBacking.selectedNews}" layout="pageDirection">
<f:selectItem itemLabel="Public" itemValue="Public" />
<f:selectItem itemLabel="Member" itemValue="Member" />
<p:ajax listener="#{contentEditorBacking.addNewsArticle}" />
</p:selectOneRadio>
<p:commandButton value="submit" action="#{contentEditorBacking.addNewsArticle}" />
根据评论更新 ,您似乎想要导航到带有参数的其他页面。 然后, addNewsArticle()
方法应如下所示,以便它与<p:ajax listener>
和<p:commandButton action>
兼容。
public void addNewsArticle() throws IOException {
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
ec.redirect(ec.getRequestContextPath() + "/next.xhtml?action=add");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.