近期转入开发一个项目中,项目使用了零配置,突发奇想也试着写一个类似的程序出来,大概思路:

  1. 用过滤器过滤请求路径,转入自定义filter;

  2. 分析请求的action或带方法名的url,如: /index/login!valid.action。 

  3. filter初始化的时候,将用户定义类action处理类加载起来,键值对的形式([{login: com.test.loginAction},{index: com.test.indexAction}]);

  4. 根据请求key,反射实例化处理action对象,调用其对应方法;

 小框架打完包,8kb, 取了个响亮的名称  

使用需知(先导入struts3.jar):

   1、必须在web.xml中配置过滤器com.struts3.core.interfaceArea.impl.Struts3FilterDispatcher类

   2、action类名称使用驼峰命名法命名并且以Action结尾,例LoginAction,说明:请勿使用简单的Action作为名称,并且必须继承com.struts3.core.interfaceArea.impl.Struts3Action类;

   

   3、action需重写父类initPageUrl方法,并且调用addURL方法,注册页面跳转,如:addURL(SUCCESS, "/index.jsp"),execute方法为默认处理方法,可不重写;

OK,发布到tomcate,访问main处理方法:http://192.168.167.207:8080/TestStruts3/test!main.action

访问java处理方法:

http://192.168.167.207:8080/TestStruts3/test!java.action

 

总结: 仅为练习之用,功能只支持页面跳转篇,没日志,国际化等内容,多多指教,可以接受

附件为例子,作业完成。