我当前的应用程序使用这种函数从http请求填充一个简单的java对象:
// request is an instance of org.apache.catalina.connector.RequestFacade
// myObject is an instance of MyBusinessDTO
org.apache.commons.beanutils.BeanUtilsBean.populate( myObject, request.getParameterMap( ) );
它适用于几乎所有用例,但我仍然坚持使用一个,从我的请求参数填充HashMap。
我要填充的对象如下:
public class MyBusinessDTO extends BusinessDTO
{
private Map<String, Object> listeFormsChecked = new HashMap<String, Object>( );
/**
* @return the listeFormsChecked
*/
public Map<String, Object> getListeFormsChecked( )
{
return listeFormsChecked;
}
/**
* @param listeFormsChecked the listeFormsChecked to set
*/
public void setListeFormsChecked( Map<String, Object> listeFormsChecked )
{
this.listeFormsChecked = listeFormsChecked;
}
}
我已尝试过我的请求,例如:
但它们都不起作用。
这甚至可能吗?如果是的话,怎么样?
答案 0 :(得分:0)
不是100%肯定,而且我也只是用beanutils弄湿了脚,但是从javadocs听起来你的想法并不支持:
“此方法使用Java反射API来识别相应的 “属性设置器”方法名称,并处理setter参数 type String,boolean,int,long,float和double。此外, 也可以识别这些类型的数组 setter(或相应的基元类型)。“
所以,数组,但没有地图。
但是你可以尝试使用两个同步(不是在java意义上)数组,并使用beanutils将它们独立设置在单独的变量中 - i你的键将是一个具有自己的getter和setter的数组,以及vals将是第二个具有自己的getter和setter的数组,然后你可以在bean中有一个实用程序方法,自动将它们合并到一个map中。