2011-11-15 23 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