/**
* Applies the text for a given message to the associated bean definition property
*
* @param message message instance to apply
* @param beanDefinition bean definition the message should be applied to
* @param beanClass class for the bean definition
*/
protected void applyMessageToBean(Message message, BeanDefinition beanDefinition, Class<?> beanClass) {
String key = message.getKey().trim();
// if message doesn't start with path indicator, it will be an explicit key that is matched when
// iterating over the property values, so we will just return in that case
if (!key.startsWith(KRADConstants.MESSAGE_KEY_PATH_INDICATOR)) {
return;
}
// if here dealing with a path key, strip off indicator and then process as a property path
key = StringUtils.stripStart(key, KRADConstants.MESSAGE_KEY_PATH_INDICATOR);
// list factory beans just have the one list property (with no name)
if (ListFactoryBean.class.isAssignableFrom(beanClass)) {
MutablePropertyValues pvs = beanDefinition.getPropertyValues();
PropertyValue propertyValue = pvs.getPropertyValueList().get(0);
List<?> listValue = (List<?>) propertyValue.getValue();
applyMessageToNestedListBean(message, listValue, key);
} else if (StringUtils.contains(key, ".")) {
applyMessageToNestedBean(message, beanDefinition, key);
} else {
applyMessageTextToPropertyValue(key, message.getText(), beanDefinition);
}
}
MessageBeanProcessor.java 文件源码
java
阅读 25
收藏 0
点赞 0
评论 0
项目:kuali_rice
作者:
评论列表
文章目录