Spring MVC是一个MVC框架,通过实现MVC很好的将数据、业务、展现进行分离,Sping MVC是围绕DispatcherServlet进行设计的(Struct2是围绕过滤器进行设计的),由DispatcherServlet负责将请求派发给handlerMapping,并分别分发给相应的Controller控制器。相应的控制器,会有对应的数据和页面ModelAndView,再到视图解析器ViewResolver,最后返回视图(一般是JSP页面)。如下图所示:
SpingMVC框架搭建步骤:
1、创建工程取名:SpringMVC01,拷贝springmvc相关的jar包,并把jar包拷贝到lib:如下图所示:具体的jar包可在文件夹下的/资
料/springmvc需要的jar包/文件下获取。
2、配置web.xml配置前端控制器DispatcherServlet
3、在WEB-INF下创建一个springmvc配置文件,[servletname]-servlet.xml,必须按照这个命名规则,比如本例就是:springmvc-servlet.xml。
通过创建一个spring confiuger file,命名为springmvc-servlet.xml
4、在springmvc-servlet.xml中配置handlerMapping的处理(可以省略):
5、创建jsp页面需要发出请求的页面
6、创建Controller继承AbstractController创建Helllocontroller继承AbstractController重写handlerRequestInternal返回数据和页面。
7、在springmvc-servlet.xml中配置视图解析器(拼接路劲写起来更简单)
8、在springmvc-servlet.xml中通过配置文件配置Controller对应的beanname:
【补充】:利用注解的方式实现helloworld:
在对应的controller中添加注解:@Controller,如下:
Spring MVC中的RequestMapping的说明:
在Spring MVC中写RequestMapping的地方有两大类地方,第一个是在类名上面写,第二个是在方法名上写,格式为:@RequestMapping(value=“/user”, method=RequestMethod.POST),或者简写为@RequestMapping(“/user”)。对于提交的method方式不设置的话则对于get和post都能获取。超链接的提交方式是get。在类上的RequestMapping对于的是模块名,在方法上的RequestMapping对应的是模块下面的方法名,如下:
Spirng MVC参数传递
Spring MVC中的参数传递有三种方式:第一种是通过最原始的HttpServletRequest request中个request.getParameter(“[parameter]”)来获取
的,如下:
第二种方式直接在对应方法中写上传入的参数的名称,如下:
第三种方式通过对象,先编写一个类,类中的属性与传递过来的参数一致,示例如下:
如何获取复选框的值呢?
可以在相应的类中添加数组即可如下:
在方法中的参数可以设置默认值,即如果没有传递参数即为NULL时的默认值,示例中前端传来的参数为tim的值如果为null,则输出的tim的值
为”hello”如下:
页面上传递时间类型如何处理?
比如:前端传入:2015-01-01 12:01:23,可以在控制器中直接加入时间属性编辑器给定格式如下:
Spring MVC返回页面数据
第一种通过request.setAttribute(“user”,”hello”),在前端通过EL表达式:${user}获取到,如:
第二种通过ModelAndView 返回页面路径和数据。
第三种通过Model返回数据,通过String返回路(这种方式用的最多)
第四种是通过Map