我正在开发一个Java Web项目,而不是将Spring MVC,Spring web-flow应用到它(因为它非常简单)。将HTTP请求的值附加到Java对象时,我遇到了一个小问题。是否有任何独立的库或实用程序支持我们将数据从客户端请求自动绑定到服务器对象(通过属性名称匹配)而不使用Spring?假设客户端请求中的参数已经构建到地图中。
当我使用Grails(Groovy的Web框架)时,它通过使用:object.properties=parameters
将请求参数中的数据填充到对象的方法非常棒,但我不知道在Java中,我们是否有类似的机制执行它?
非常感谢。没有Spring MVC的自动数据绑定Java对象
0
A
回答
2
Apache Commons可能会帮助BeanUtilsBean。它有很酷的方法,如getProperty()
和setProperty()
,这可能会有所帮助,如果你想尝试手动使用反射代码。还有populate(Object bean, Map properties)
方法,我相信这是最接近你想要的。
Dozer是一个java库,专门用于将东西从一个结构映射到另一个结构。它可能有帮助。
This guy张贴在coderanch了类似的问题,并在进行一些讨论后,他想出了以下内容:
public static <T extends Object> T setFromMap(Class<T> beanClazz, HashMap<String, String> propValues) throws Exception
{
T bean = (T) beanClazz.newInstance();
Object obj = new Object();
PropertyDescriptor[] pdescriptors = null;
BeanInfo beanInfo = Introspector.getBeanInfo(beanClazz);
pdescriptors = beanInfo.getPropertyDescriptors();
for(int i=0; i<pdescriptors.length; i++)
{
String descriptorName = pdescriptors[i].getName();
if(!(descriptorName.equals("class")))
{
String propName = descriptorName;
String value = (String) propValues.get(propName);
if(value != null)
{
Object[] objArray = new Object[1];
objArray[0] = value;
Method writeMethod = pdescriptors[i].getWriteMethod();
writeMethod.invoke(bean, objArray);
}
}
}
return bean;
}
相关问题
- 1. Spring MVC复杂对象数据绑定
- 2. Spring MVC表单是否自动提交数据绑定子对象?
- 3. Spring MVC的数据绑定:绑定参数为对象场不同的名称
- 4. Spring MVC中绑定额外的对象
- 5. Spring MVC的部分对象绑定
- 6. 在Spring MVC中绑定的对象
- 7. spring-mvc + jpa:数据绑定
- 8. Spring MVC数据绑定
- 9. Spring 3.0 MVC绑定嵌套对象
- 10. spring mvc @SessionAttributes没有正确绑定
- 11. 数据绑定自定义对象
- 12. Spring MVC的3:定义自己的数据类型,绑定
- 13. Spring MVC中的数据绑定错误
- 14. 基本的Spring MVC数据绑定
- 15. flex似乎没有绑定自定义动作对象
- 16. 将数据绑定到Asp.net中的现有对象MVC
- 17. Spring MVC绑定
- 18. 关闭Spring MVC数据绑定器
- 19. Spring MVC - 参数绑定
- 20. Spring MVC 3 - 绑定参数到后台对象
- 21. MvvmCross对象数据绑定
- 22. 数据源自动绑定
- 23. 动态表单和与Spring MVC的数据绑定
- 24. knockout.js数据绑定对象
- 25. WPF数据绑定对象
- 26. 数据与ASP.NET和自定义数据绑定对象
- 27. 没有自动回送的ASP数据绑定下拉列表
- 28. 没有设置绑定的对象
- 29. Grails的与Java,Spring MVC和没有数据库资源
- 30. 数据绑定到数据绑定对象内的列表
我不明白你的理由不使用Spring。在我看来,这正是你想用于这样的事情。 –