struts2框架是如何应用反射的

2023-05-25 综合 27阅读
反射在struts2中的应用
// 根据用户请求的action名,从配置文件找到该action结点得到class路径及调用的action方法名,以以下片断为例

String actionClass = "com.action.StrutsTest";// action的执行class
String actionMethod = "execute";// 要执行的action方法

// 对应表单里的参数,调用action对应参数的setter方法来注入
Map<String, String> paramMap = (Map<String, String>) request.getParameterMap();// 在这里我假设所有action的属性都是String类型的

Class class1 = Class.forName(actionClass); // 得到action的class对象

Object object = class1.newInstance();// 构造一个action实例

// 将表单里的所有参数值设置到action中
for (Entry<String, String> entry : paramMap.entrySet())
{
// 得到每个参橡肢数的setter方法
Method method =
class1.getMethod(new StringBuffer("set").append(entry.getKey().substring(0, 1).toUpperCase())
.append(entry.getKey().substring(1))
.toString(), entry.getKey().getClass());

// 调用action中每个参数的setter方法来给action属性注入值
method.invoke(object, entry.getValue());
}

//芦尘 得到处理action请求的函数入口
Method method2 = class1.getMethod(actionMethod);

String returnSuccess = String.valueOf(method2.invoke(object));//处理请求,得到返回值

// 实际上这里应该是根据returnSuccess去对应action下取出jsp路径的,这里我就写死
String jspPath = "index.jsp";

request.getRequestDispatcher(jspPath).forward(request, response);//陪如禅 类似struts1跳到指定页面
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com