【发布时间】:2016-03-23 15:57:12
【问题描述】:
如何通过标准决策在List<Driver> 中设置特定Driver 的字段?没有我自己的属性:
<f:attribute name="hashCode" value="#{driver.hashCode()}"/>
Java BackBean:
public class BackBean {
List<Driver> drivers;
public List<Driver> getDrivers() {
List<Driver> drivers = new ArrayList<Driver>();
...
return drivers;
}
public void licenceReplacedCheckBoxChanged(ValueChangeEvent e) {
Boolean driverDocChanged = (Boolean) e.getNewValue();
int hashCode = (Integer) e.getComponent().getAttributes().get("hashCode");
for (Driver buff : getDrivers()) {
boolean findDriver = ( buff.hashCode() == hashCode );
if (findDriver) {
buff.setDocumentReplaced(driverDocChanged);
buff.makeChangeDriver();
}
}
}
}
xhtml:
<a4j:repeat value="#{backBean.drivers}" var="driver" rowKeyVar="rowDriver" id="drivers">
...
<div class="controls one-control-group">
<h:selectBooleanCheckbox value="#{driver.documentReplaced}"
valueChangeListener="#{backBean.licenceReplacedCheckBoxChanged}">
<f:attribute name="hashCode" value="#{driver.hashCode()}"/>
<a4j:ajax execute="@this" render="..." />
</h:selectBooleanCheckbox>
</div>
...
</a4j:repeat>
【问题讨论】:
标签: jsf richfaces valuechangelistener