简单做一个SimpleFramework和Struts的比较
比较项 | SimpleFramework | Structs |
实现模式 | Filter-based MVC2 | MVC |
实现方式 | 基于组件,每一个组件派生出不同的业务接口 | 基于请求,仅提供请求Action接口 |
页面技术 | 支持纯HTML、主流页面技术(JSP、标签库等)
通过CSS Selector实现页面元素和后台组件Render产生的代码绑定 | 每一Action类定义了一Abstraction,但该Abstraction是由HTTP协议的请求机制决定的。 输出HTML需掌握主流的页面技术(JSP/JSF/自定义标签等) |
Servlet API和HTTP协议抽象 | 包装成ComponentParameter对象,由ComponentParameter对象和组件交互
ComponentParameter对象中含有HTTPServletRequest和HttpServletResponse
围绕组件业务接口建立应用 | 未隐藏Servlet API和HTTP协议细节。Action须和HTTPServletRequest、HttpServletResponse 和HttpSession类交互。
围绕请求和响应建立应用 |
配置方法 | 组件声明以配置文件的形式存在,可以理解为把标签库单独拿出作为一个独立的文件 | 一个或多个配置文件或注释 |
标签库 | 无标签 | Struts+JSTL标签库 |
AJAX支持 | 内嵌AJAX引擎 | 不支持;可整合其他AJAX框架 |
开放性 | 可和其它Web框架组合应用 可与第三方Taglib组合使用 可结合客户端框架使用 | 可结合第三方Taglib 可结合客户端框架使用 |
可扩展性 | 可自定义或扩展组件 可按照一定规范整合第三方组件资源 |
|
可积累性 | 可整合既有应用资源 可将模块/某类应用封装为组件 |
|