public void setValue(Object context, Object value) { try { BeanWrapperImpl beanWrapper = new BeanWrapperImpl(context); Set converters = conversionService.getConversionExecutors(String.class); for (Iterator it = converters.iterator(); it.hasNext();) { ConversionExecutor converter = (ConversionExecutor) it.next(); beanWrapper.registerCustomEditor(converter.getTargetClass(), new PropertyEditorConverter(converter)); } beanWrapper.setPropertyValue(expression, value); } catch (NotWritablePropertyException e) { throw new PropertyNotFoundException(context.getClass(), expression, e); } catch (TypeMismatchException e) { throw new ValueCoercionException(context.getClass(), expression, value, e.getRequiredType(), e); } catch (BeansException e) { throw new EvaluationException(context.getClass(), getExpressionString(), "A BeansException occurred setting the value of expression '" + getExpressionString() + "' on context [" + context.getClass() + "] to [" + value + "]", e); } }