struts2框架是如何应用反射的
来源:互联网 发布:不一样的美男 知乎 编辑:程序博客网 时间:2024/06/02 17:53
在实际开发中很少用到反射,但在许多框架,像struts2等,下面我就用个简单的例子解释反射在struts2中的应用过程
// 根据用户请求的action名,从配置文件找到该action结点得到class路径及调用的action方法名,以以下片断为例 /** * <action name="testAction" class="com.action.StrutsTest" method="execute"> <result * name="success">/WEB-INF/jsp/userManage/login.jsp</result> </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跳到指定页面
0 0
- struts2框架是如何应用反射的
- 简单的反射框架应用
- 框架原理反射的应用
- Struts2 验证框架的应用
- struts2框架的应用机制
- Struts2是如何启动的?
- struts2是如何启动的?
- 反射是用来做框架用的
- 反射:Class类、反射概念、类中各成员的反射、反射的应用、数组的反射、框架
- 反射的应用---实习框架功能
- Struts2框架简单的AJAX应用
- struts2框架开发的第一个应用
- 完整的struts2框架应用实例
- Struts2 内部是如何工作的
- 8.9反射的应用 实现框架的功能
- 如何搭建Struts2框架
- 如何搭建struts2框架
- Java反射机制在Android自动化测试框架的应用
- 线程的基本操作(二)
- 关于Java虚拟机中的字节码指令
- 活动安排问题
- UEFI ConnectController() 解读
- construct binary tree from preorder and inorder
- struts2框架是如何应用反射的
- hdoj 2084 数塔 【经典DP】
- Android学习十---Android Camera
- Eclipse/MyEclipse安装svn插件
- 字节码指令集
- 索引的基础知识
- directshow之filter开发---ASYNC例程解析
- linux 常用命令ll 即 ls -l --color=auto
- Unity3D鼠标、键盘的操作