code: public static boolean setField(Object obj, String prop, Object value) throws PageException {
  	Class clazz = value.getClass();
  	try {
  	    Field[] fields = getFieldsIgnoreCase(obj.getClass(), prop);
  	    // exact comparsion
  	    for (int i = 0; i < fields.length; i++) {
  		if (toReferenceClass(fields[i].getType()) == clazz) {
  		    fields[i].set(obj, value);
  		    return true;
  		}
  	    }
  	    // like comparsion
  	    for (int i = 0; i < fields.length; i++) {
  		if (like(fields[i].getType(), clazz)) {
  		    fields[i].set(obj, value);
  		    return true;
  		}
  	    }
  	    // convert comparsion
  	    for (int i = 0; i < fields.length; i++) {
  		try {
  		    fields[i].set(obj, convert(value, toReferenceClass(fields[i].getType()), null));
  		    return true;
  		}
  		catch (PageException e) {}
  	    }
  	}
  	catch (Exception e) {
  	    throw Caster.toPageException(e);
  	}
  	return false;
      }
docs: assign a value to a visible Field of a object
  
  @param obj Object to assign value to his property
  @param prop name of property
  @param value Value to assign
  @throws PageException