我有一個問題,t:radio(與t:selectOneRadio相關)的值沒有傳遞給後臺bean。目前我們正在將JSF 1.x轉換爲JSF 2.x,在Jboss 7.2.0上使用MyFaces 2.1.13,並且我們有2.0版本的Tomahawk庫。我花了幾個小時嘗試不同的事情,以使其工作和搜索高低,但無法找到其他人遇到同樣的問題。我已經確定,一旦檢查了值,setter就不會被調用。t:radio沒有被傳遞給Myfaces中的後臺Bean 2.1
我已經提取了代碼並簡化了它,但仍然沒有任何內容傳遞給ajax調用。
<h:form id="profileReport">
<h:messages />
<h:panelGrid columns="2">
<t:selectOneRadio id="selectQuestionnaire" layout="spread" required="true"
value="#{viewProfile.selectedQuestionnaire}">
<f:selectItem itemValue="SC_PRE!20121212095427.0000000.059814626868021525" />
<f:ajax event="click" execute="@this" render="profileReport:selectTemplate profileReport" />
</t:selectOneRadio>
<h:outputLabel for="selectQuestionnaire" value="#{prmsgs.firstQuestionnaireLabel}" styleClass="labelText" />
<t:radio index="0" for="profileReport:selectQuestionnaire" />
<h:outputLabel for="selectTemplate" value="#{prmsgs.exploratoryProcessTemplate}:" styleClass="labelText" />
<h:selectOneListbox id="selectTemplate" value="#{viewProfile.selectedInterpretiveProfileTemplateId}" required="#{menuNavigation.selectInterpretiveProfileActive}">
<f:selectItems value="#{viewProfile.interpretiveProfileTemplates}"/>
</h:selectOneListbox>
</h:panelGrid>
</h:form>
只是爲了測試目的,我已經取代了T:selectOneRadio使用h:selectOneRadio和setter方法被調用。然後,我嘗試了t:selectOneRadio,但沒有t:radio並且工作正常。所以這似乎是t:radio的問題,但我不確定這是什麼。我知道Icefaces具有類似的功能,但我不想在此時單獨使用另一個完整的組件庫。我們試圖儘可能減少變化,因爲這是一個非常精簡的轉換過程。
嘗試使用t:radio index =「0」for =「profileReport:selectQuestionnaire」renderLogicalId =「true」。我發現這是在[TOMAHAWK-1551](https://issues.apache.org/jira/browse/TOMAHAWK-1551) – lu4242
@ lu4242解決的感謝。我嘗試添加該代碼,但尚未解決問題。該setter仍然沒有被調用 - 我嘗試renderLogicalId true和false只是爲了看看會發生什麼,也不會導致任何功能的變化。 – RobG
嘗試將f:ajax中的execute =「@ this」更改爲執行=「@ form」。可能t:radio內的值沒有在ajax請求中處理。 – lu4242