同样的代码写两次就是罪过,所以我们需要什么东西来让我们解放出来。
很快人们就发展出了一套MVC框架,特别是适合于Java Web的MVC框架。
MVC框架能帮我们做什么?
这里引用网友“四刘”的回答:
框架和普通库的几点区别里,我认为最重要的一点是控制反转。
框架规定了开发者写哪些代码/不写哪些代码,怎么写代码——这就是框架主要解决的问题。
MVC框架实现了MVC模式。什么意思?
意思是只要你根据框架的要求填充代码,你就能够很简单的实现MVC模式。
谁来响应用户请求?框架可能告诉你,Action就是用来响应用户请求的。
不用再继承HttpServlet,代码中也可以完全脱离Servlet Api。复用度高,可单元测试。
谁负责生成响应界面?框架可能告诉你,可以用一个JSP文件来生成界面。
也可以用其他视图技术,JfreeChart,FreeMarke,JasperReports,JSF,Tiles,Vlocit等。
如何将网址匹配到Action?框架可能告诉你,在XML文件中配置,且可以分模块配置。
如何确定该返回那个JSP?框架可能告诉你,在XML文件中配置好了,Action返回SUCCESS,INPUT,LOGIN等等即可。
Action如何接受参数?框架可能告诉你,写个Setter方法,就可以接受相应参数。不用再从request获取,且类型可自动转换。根据配置处理编码问题。
Action如何与视图交互?框架可能告诉你,Action自动与视图绑定,在Action写一个Getter方法,试图层就可以用自定义标签获取其值。
输入校验如何进行?写个validate方法,有错误就调用addActionError方法,自动返回配置中,INPUT指定的页面,页面用标签就可以自动输出错误信息。
也可以使用addFieldError方法添加特定field的错误,使用输出特定field的错误信息。
甚至使用方法生成的输入框,可以自动显示该字段的错误信息。