我在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发布相关代码,但我不认为这是问题,因为它甚至没有被调用。
此页面的“真实”版本可以使用,并且已经在生产应用程序中使用了几年。添加单选按钮是唯一的变化。
答案 0 :(得分:1)
这里首先想到的是单选按钮的rendered
属性正在尝试评估字符串。看起来你打算将它作为一个EL表达式,但遗漏了大括号。