Easyjweb-0.7.0 在 easyjweb-0.6 的版本上做了一些改进:
主要的功能改变有:
1,? 去掉了 0.6 版本比较难于使用的 intercpetor ,增加了在执行 Action 前后的 intercptor ;
2,? 增加了主题功能的支持;
3,? 增加了基于 interceptor 的权限或者安全控制接口;
4,? 增加了 ErrorHandler 来统一管理框架中的错误的处理逻辑;
5,? 增加了ForbitRep机制来禁止用户重复提交表单;
6,? 改进了 hello 应用;
?
使用方法:
1,? interceptor 是需要实现 ActionIntercptor 接口,该接口提供了在执行 action 之前和之后的拦截操作;并且提供了三个该接口的最简单的实现,你可以选择继承来实现之前,之后,或者两者的拦截器;在 hello 应用中,我们实现了一个 TimeInterceptor ,用来控制在一定时间范围内的访问请求;
2,? theme 的功能,你可以根据自己的需要实现 IThemeManager 接口和 ITheme 接口。 IthemeManager 接口是需要根据某种策略从 request 中返回一个 ITheme 对象。 ITheme 对象中定义了返回到视图中的样式的 Map 。我们提供了一个通过 properties 文件来简单的实现主题的切换的类,你只需要把自己不同的样式以 properties 文件保存为 theme_themeName.properties 文件,并在请求中使用 theme=themeName 就可以获得该主题的样式,并且在没有改参数请求的时候,保持上一个请求的样式。在 hello 应用中我们也实现了一个这个功能的简单演示。
3,? 权限控制是基于 interceptor 的,你只需要实现 Icondition 接口来实现自己对一个请求的判断,如果不通过抛出一个 SecurityException 即可,通过返回 true 。同样我们实现了一个基于 properties 文件的类,你需要把一个 url 样式和一个 Icondition 对象联系起来,保存到 web-inf /url2ConditionMap.properties 文件。在 hello 实例中,我们实现了一个简单的权限控制拦截。
4,? ErrorHandler 统一管理的应用中的错误;你只需要在合时的地方抛出你的错误,并使用一个与之对应的实现了 IerrorHandler 接口的类来处理该错误即可。在 IerrorHandler 中,允许返回一个 Page 对象,来合成错误的视图。我们同样也实现了一个基于 properties 文件的 ErrorHandlerManager 类,你可以在 web-inf/ErrorHandlerMap.properties 文件中定义错误的类型和他对应的错误处理类。在 hello 实例中,我们也给出了一个简单的错误处理的应用。
5,ForbitRep机制使用ForbitRepProcessor方法根据用户的会话ID和系统时间智能生成一个十六进制的ID,用户只要在自己的表单里添加一个input type=hide,value=forbit的字段就可以解决重复提交的问题。
6,? 现在的 hello 应用,包括了最新的 4 个功能的简单的例子。这 4 个新的功能,我们都作了默认的设置,你只需要简单的添加最少的配置文件和实现类来使用这些比较适用的功能。
?
对于新功能的更多的使用方法,参见相关的文章。也希望你在使用框架时,能发现并及时反馈错误信息,你对新的版本的功能的意见;或者提交你的改进代码,使框架能更完善及易用。
?下载Easyjf-jweb0.7.0