The only way to make that "clean" is to push the translation effort into your ActionForm and nest your real beans in the ActionForm. you would then have a String value that you convert and set into your nested bean. The other option is to write a different BeanUtils Converter implementation for numerics and register it (http://jakarta.apache.org/commons/beanutils/api/org/apache/commons/beanutils/ConvertUtils.html#register(org.apache.commons.beanutils.Converter,%20java.lang.Class).
I would personally avoid cluttering up your domain bean with faux setters and getters. Brandon On 5/2/05, Darek Dober <[EMAIL PROTECTED]> wrote: > > Hi, > > I hava a table 'users' with column dept_id (id of department in departments > table) > > This column is optional. That means the operator doesn't have to assign > inserted user to any department. > > If I have bean: > > public class UserBean { > Integer departmentId; > > .... > } > > struts will make automatic conversion of type. So departmentId will be set > to 0, if I don't set any of department. That's a cheat, because, I don't > want to to have a > department with id equals to 0, it should be NULL. > > On the other hand, when I implement departmentId as String, struts act > correctly. But while inserting record to the database, I get an error sth > like this: > database column dept_id is type of bigint, inserted value is type of > varchar. > > I have the solution: departmentId is type of String, but for ibatis I have > the other metod getDepartmentIdAsInteger which return Integer or null if > value is empty. > It works, but i don't like this. > > Is there any cleaner solution for this. I looked into jpetstore, but there > were columns of type varchar. Rest of them was mendatory. > I cannot use columns of type varchar as foreign keys. > > Usage: > .... > VALUES( > #departmentId:INTEGER#, > .... > > doesn't help if departmentId is String > > Any ideas? > > Darek