2011-11-15 52 views
0

我在JSF應用程序中將單選按鈕標籤添加到以下JSP(刪節和匿名)。它不會呈現任何單選按鈕,也不會調用託管bean中的任何相關方法。t:selectOneRadio with t:radio renders as nothing

<h:form id="orderForm"> 

<t:selectOneRadio 
    id="theRadioInput" 
    layout="spread" 
    forceId="true" 
    forceIdIndex="false" 
    value="#{bean.aStringProperty}" 
    styleClass="field"> 
    <f:selectItems value="#{bean.radioSelectItems}"/> 
    <a4j:support 
     event="onclick" 
     reRender="theRadioInput" 
     actionListener="#{bean.listener}"/> 
</t:selectOneRadio> 
<rich:dataTable 
    id="dataTable" 
    value="#{bean.listOfDataObjects}" 
    var="curDataObject" 
    rowKeyVar="index"> 
    <rich:column style="border-left"> 
     <rich:panel style="border:none"> 
     ... 
     </rich:panel> 
    </rich:column> 
    <rich:column> 
     <h:outputText value="#{curDataObject.location}" styleClass="label" style="font-size:12;"/>                     
     <rich:dataList var="item" value="#{curDataObject.someItems}" rowKeyVar="itemIndex" styleClass="noWrap"> 
      <h:outputText value="Some data:" styleClass="label" /> 
      <h:outputText value="#{item}" styleClass="label" /> 
     </rich:dataList> 
     <t:radio for=":orderForm:theRadioInput" index="#{index}" rendered="curDataObject.radioApplicable"/> 
    </rich:column>         
</rich:dataTable> 

</h:form> 

我想知道,是否我使用<rich:dataTable>,不<t:dataTable>有所作爲的事實呢?還有什麼可以防止單選按鈕出現?在渲染過程中甚至不會調用bean.getRadioSelectItems()。 (當頁面提交後,它確實會被調用。)

如果你堅持,也許我會從託管bean發佈相關代碼,但我不認爲這是問題,因爲它甚至沒有調用。

該頁面的「真實」版本可以工作,並且已經在生產應用中使用了數年。單選按鈕的添加是唯一的改變。

回答

1

這裏跳轉到的第一件事是單選按鈕的rendered屬性試圖評估一個字符串。看起來你打算把它當成一個EL表達,但是卻沒有使用大括號。

+0

第一件事是正確的。謝謝你借給你敏銳的眼睛! – nclark