在我看来,这不是一个理想的解决办法,但它能满足你的需要。
-
您的Struts 2操作需要实现sessionware和parameterware接口。
-
-
现在,当您调用getParameters()时,您将拥有一个名称/值对的映射。
例如,你需要这样做:
Map myParams = getParameters()
Employee e = new Employee()
Class clas = null;
try {
clas = Class.forName("Employee");
Field fieldlist[] = clas.getDeclaredFields();
for (int i = 0; i < fieldlist.length; i++) {
Field fld = fieldlist[i];
if(myParams.containsKey(fld.getName()))
fld.set(e, myParams.get(fld.getName())
}
} catch (ClassNotFoundException ex) {
// handle exception case
}
如果employee对象的字段存在于映射中,则应将该映射中的所有参数映射到该字段。当然,这可以移植到一个单独的方法,该方法属于一个类似Util类的类,在这个类中传递您想要反映的类。