Struts 是一个基于 SUN J2EE平台的 MVC 框架,主要是采用 Servlet 和 JSP 技术来实现的。在 Struts 框架中,模型由实现业务逻辑的 JavaBean 或 EJB 构件构成,控制器由ActionServlet和 Action 来实现,视图由一组 JSP 文件构成,如图 15-8 所示。
Struts 把 Servlet、JSP、自定义标签和信息资源整合到一个统一的框架中,开发人员利用其进行开发时不用自己再编码实现全套 MVC 模式,极大地节省了时间。
Struts 将业务数据、页面显示、动作处理进行分离,这有利于对各部分的维护。Struts 采用 Front Controller 模式来实现动作处理,使所有的动作请求都经过一个统一入口,然后进行分发。这方便了人们在入口中加入一些全局控制代码,如安全控制、日志管理、国际化编码等。通常情况下借助 Struts Validator 框架帮助完成 Web 层的验证工作,不用再去为每个 Web 页面写验证代码,只需通过配置即可实现。这也减少了开发量,由于验证代码的集中管理,也为维护带来便利。
Struts 的工作流程为:首先,JSPview 发起一个以.do 表示的请求;ActionForm 封装用户请求数据,同时提供验证数据的功能;ActionServlet 根据 struts-config.xml 文件来得到处理这个请求的 Action 对象,并将请求发送给这个 Action 对象;Action 对象调用 model 去处理这个请求,将结果返回给 ActionServlet;ActionServlet 决定将结果返回给对应的 view; view 得到结果,并将它显示给用户。这里需要提到的是,可以通过 Struts 提供的 ActionForm 封装 web form 中的元素,使重用 web 表单成为可能。