jsf - How do UISelectOne and UISelectMany components preselect defaults in f:selectItems -
i know how preselect <p:selectonemenu>
, in selected value
should 1 of objects <f:selectitems>
, how component work under hood , can change behavior?
in case i've duplicate object, 2 objects same values created twice , selected object in <p:selectonemenu>
differs object <f:selectitems>
, doens't recognize it. change design so, point same object in case can't due legacy code or etc, how can change behavior of <p:selectonemenu>
compare objects id
example?
i'd thought converter
responsible it, when rendered doesn't enter on getasobject
method getasstring
, guess there's different, what?
thank you
it uses object#equals()
that. can change (fix) behavior implementing accordingly on entity.
private long id; @override public boolean equals(object other) { return (other != null && getclass() == other.getclass() && id != null) ? id.equals(getclass().cast(other).id) : (other == this); }
don't forget hashcode()
satisfy equals-hashcode contract.
@override public int hashcode() { return (id != null) ? (getclass().hashcode() + id.hashcode()) : super.hashcode(); }
if can't change existing entity unclear reason, wrap in own dto.
the converter converts between entity , unique string
representation usage in html output , http request parameters , has therefore no influence on preselection. has influence on potential validation error: value not valid trouble.
Comments
Post a Comment