java s2sh 实现自动注入Service

蓝色思念 发布于 2016/09/22 09:02
阅读 167
收藏 0

大家好:需求是这样的,通过前台传来的参数,后台实现该参数自动注入。

举例:

前台 form 提交表单

<s:textfield name="Service1"></s:textfield>

<s:textfield name="method1"></s:textfield>

<s:textfield name="Service2"></s:textfield>

<s:textfield name="method2"></s:textfield>

Struts2 接到上面参数后,自动注入Service1,和自动调用method1 方法。


加载中
0
阿信sxq
阿信sxq
估计只有使用spring里面的“getbean”的方法了,具体的看看api
0
蓝色思念

其实很简单,当时没有想到,现在做出来了,利用spring 的getBean 加反射.前台做了个页面,多选框选择发送邮件功能。

@Override
    /**
     * 手动发送邮件
     */
    public void sendEmail(Integer s,ApplicationContext context) {
         try {
             SysEmail sysEmail=findEntityById(s);
              //获取要调用的方法
             String autoMethod=sysEmail.getAutoMethod();
             //获取调用类
             String sendHelper=sysEmail.getAutoClass();
             //得到调用类对象
             Object obj = context.getBean(sendHelper);
             //反射得到字节码
             Class clz=obj.getClass();
             //反射得到需要的调用的方法
             Method sendMethod = clz.getDeclaredMethod(autoMethod, null);
             //调用
             sendMethod.invoke(obj);
             sysEmail.setSendTime(new Timestamp(new Date().getTime()));
             update(sysEmail);

         } catch (Exception e){
             e.printStackTrace();
             return;
         }
    }



返回顶部
顶部