精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-03-25
最后修改:2011-03-25
以前写过类似的
“ 当我请求/loginaction/login时,将自动调用LoginAction.login()方法 而请求/loginaction/logout时,自动调用LoginAction.logout()方法 ” 一直不怎么用struts 就凑活这么用的 String action=request.getParameter("action"); try { Class c= Class.forName("com.xxxx.web.transmit.GlobalTransmit"); Class[] arg=new Class[]{HttpServletRequest.class,HttpServletResponse.class}; Method method=c.getMethod(action,arg); method.invoke(c.newInstance(), new Object[]{request,response}); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } /Control?action=xxxx就会调用GlobalTransmit的xxx方法。。。 |
|
返回顶楼 | |
发表时间:2011-03-25
luciferdevil 写道 以前写过类似的
“ 当我请求/loginaction/login时,将自动调用LoginAction.login()方法 而请求/loginaction/logout时,自动调用LoginAction.logout()方法 ” 一直不怎么用struts 就凑活这么用的 String action=request.getParameter("action"); try { Class c= Class.forName("com.xxxx.web.transmit.GlobalTransmit"); Class[] arg=new Class[]{HttpServletRequest.class,HttpServletResponse.class}; Method method=c.getMethod(action,arg); method.invoke(c.newInstance(), new Object[]{request,response}); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } /Control?action=xxxx就会调用GlobalTransmit的xxx方法。。。 道理虽然查不到,但是我觉得还是把调用方法的信息存储到请求路径中而不是请求参数中更好一下,你以为呢? 比较喜欢rest风格/action/method,还有一种风格/action/method:xxx 这样的话,表单提交就可以不必回避一些类似于method或者action的参数了 |
|
返回顶楼 | |
发表时间:2011-03-25
我记得之前在公司,都是在方法的前面加上@Action(xxx) 然后程序就会自动找到这个方法了。 好像是按包名来找的,我才刚做这个,不太会。网上搜了下,也没弄明白是怎么弄的,求正解。
|
|
返回顶楼 | |
发表时间:2011-03-26
thzthbthy 写道 我记得之前在公司,都是在方法的前面加上@Action(xxx) 然后程序就会自动找到这个方法了。 好像是按包名来找的,我才刚做这个,不太会。网上搜了下,也没弄明白是怎么弄的,求正解。
简而言之,就是注解+反射~ |
|
返回顶楼 | |