0

我在一个 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 发布相关代码,但我认为这不是问题,因为它甚至没有被调用。

此页面的“真实”版本有效,并且已经在生产应用程序中使用了几年。添加单选按钮是唯一的变化。

4

1 回答 1

1

这里首先想到rendered的是单选按钮的属性试图评估一个字符串。看起来您打算将其用作 EL 表达式,但省略了大括号。

于 2011-11-15T23:09:59.247 回答