0
我基本上有兩個問題。如何使用Ajax或無Ajax提交jsf中的兩個表格
當我按下Form1中的按鈕,它工作正常,但我看不到來自FacesContext的消息。 另一個問題是在Form2中。當我只按一次按鈕,它會進入服務器,但沒有任何反應,不提交。但是當我第二次按下它時,它工作正常。當然,在形式1中也有同樣的問題,我看不到來自FacesContext的消息。能否請你幫忙,告訴我是什麼原因造成的,或者是否有另一種解決方案,讓一個頁面內有多種形式?
<p:tabView>
<p:tab title="Form1">
<h:form id="form1">
<p:inputText id="txtInput" value="#{controller.selected.defaultLayout}" />
<h:commandButton value="Submit other form" action="#{controller.createMenu()}">
<f:ajax execute="@form" render="@form" />
</h:commandButton>
</h:form>
</p:tab>
<p:tab title="Form2">
<h:form id="form2">
<p:inputText id="txtInput2" value="#{controller.selected.defaultTheme}" />
<h:commandButton value="Submit other form" action="#{controller.createMenu2()}">
<f:ajax execute="@form" render="@form" />
</h:commandButton>
</h:form>
</p:tab>
</p:tabView>
控制器:
public String createMenu() {
Menu menu = current.getMenuMenuId();
try {
//current.getMenuMenuId().setMenuCreated(true);
//getFacade().edit(current);
JsfUtil.addSuccessMessage(ResourceBundle.getBundle("resources/Bundle").getString("MenuCreated"));-----> never visible!
return "";
} catch (Exception e) {
JsfUtil.addErrorMessage(e, ResourceBundle.getBundle("resources/Bundle").getString("PersistenceErrorOccured"));
return null;
}
}
編輯:我把外標籤都有效出,然後在頁面不能正常工作了,然後我得到的錯誤信息:
javax.faces.FacesException: <f:ajax> contains an unknown id ':form2' - cannot locate it in the context of the component j_idt77
at com.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer.getResolvedId(AjaxBehaviorRenderer.java:285)
at com.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer.appendIds(AjaxBehaviorRenderer.java:272)
at com.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer.buildAjaxCommand(AjaxBehaviorRenderer.java:214)
at com.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer.getScript(AjaxBehaviorRenderer.java:86)
at javax.faces.component.behavior.ClientBehaviorBase.getScript(ClientBehaviorBase.java:103)
謝謝! Sami
Primefaces要求選項卡應該被表單包圍。然而,我試圖採取形式,我得到這個:包含一個未知的ID':form2' - 無法找到它在組件j_idt78的上下文中。感謝評論! –
Sami
更新了我的答案! –
我把外面的標籤關了,沒有成功:) – Sami