t:selectOneRadio with t:radio渲染为空

时间:2011-11-15 22:56:54

标签: jsf richfaces tomahawk

我在JSF应用程序中为以下JSP(删节和匿名)添加了单选按钮标记。它不呈现任何单选按钮,也不调用托管bean中的任何相关方法。

<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 个答案:

答案 0 :(得分:1)

这里首先想到的是单选按钮的rendered属性正在尝试评估字符串。看起来你打算将它作为一个EL表达式,但遗漏了大括号。