We are using (for the first time) facelets for our newest web application. To present data in a facelet, you reference a bean property, e.g., location.state.stateNm. Under the covers, the facelet viewer translates this to location.getState().getStateNm(). This translation is done by the expression language (EL) engine.

I have an association as in the example above from a location table to a state table via a state_id. Everything works well using the association record in the result map. However, sometimes no state_id is provided. In that case, iBatis sets the state property within location to null, and the above expression produces a NullPointerException.

Is there a way I can instruct iBatis that if the state_id column within location is null, set the state property within the location object to a new empty instance of the state object? i.e, location.setState(new State()). All the properties of the state object would obviously be null, but the EL engine can deal with that.

Two existing solutions I can see are

(1) after doing a selectLocation, check the state property and if null, set it to an empty instance myself

(2) write a type handler to achieve (1)

But it would be handy to have a nullValue option on the <association> tag. If nullValue="new" and the column value is null, then automatically create an instance of the specified javaType.

--
Guy Rouillier

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to