从ice获取列值:dataTable在另一列的验证器中

时间:2010-08-26 17:46:09

标签: java jsf icefaces

我的冰:dataTable如下所示: -

<ice:dataTable id="someTbl" var="someVar" value="#{someBean.someList}" >
   <ice:column>  
       <f:facet name="header"> <ice:outputText value="#{msgs.tblCol1}"> </f:facet>
       <ice:outputText value="#{someVar.name}"/>
    </ice:column>
   <ice:column>  
       <f:facet name="header"> <ice:outputText value="#{msgs.tblCol2}"> </f:facet>
        <ice:selectInputDate id="startCal" value="#{someVar.startTime}"
                 renderAsPopup="true" renderYearAsDropdown="true"    
                 renderMonthAsDropdown="true" partialSubmit="true" >
                 <f:convertDateTime pattern="MM/dd/yyyy HH:mm" type="date" timeZone="EST"/> 
        </ice:selectInputDate>
    </ice:column>
    <ice:column>  
       <f:facet name="header"> <ice:outputText value="#{msgs.tblCol3}"> </f:facet>
        <ice:selectInputDate id="endCal" value="#{someVar.endTime}"
                 renderAsPopup="true" renderYearAsDropdown="true"    
                 renderMonthAsDropdown="true" partialSubmit="true" validator="#{someBean.validateEndtime}">
                 <f:convertDateTime pattern="MM/dd/yyyy HH:mm" type="date" timeZone="EST"/> 
        </ice:selectInputDate>
    </ice:column>
</ice:dataTable> 

当调用行上第二个日历(id“endCal”)上的验证器时,我想获得我的支持bean中该行的第一个日历(id“startCal”)的值。有办法实现吗?我想知道ice:rowSelector但是我注意到我只能得到所选的rowId,这意味着我将不得不遍历验证器方法中的“someBean.someList”来查找该条目的值。

1 个答案:

答案 0 :(得分:1)

首先将第一个输入绑定到bean:

<ice:selectInputDate id="startCal" binding="#{someBean.startCalComponent}" ... >

使用此属性:

private UIInput startCalComponent; // +getter+setter

然后,在您的SomeBean#validateEndtime()方法中执行:

Date startTime = (Date) startCalComponent.getValue();
相关问题