SpringMVC的入门:
传统的servlet只能接受一个请求路径,然后还需要自己传入要执行的method方法名称
客户端浏览器传递的参数 在servlet中还需要自己去获取参数 getparameter
而 SpringMVC 把这些都给优化了 下面是使用SpringMVC的方法
1. 导入jar包
EL 表达式需要在 web.xml中设置版本 需要2.5以上的版本才可以使用
在 pom.xml 中导入spring-context spring-webmvc
2.在 web.xml 配置文件中 配置一个servlet
servlet的名字随便 但是要和 servlet-mapping 相同 class: DispatcherServlet
3.在Spring.xml 的配置文件中 配置包扫描 还有视图解析器
视图解析器的
4 Controller 核心控制器
(Spring MVC执行流程: 浏览器发请求 web.xml 文件中DispatcherServlet先收到请求
然后根据配置扫描 找到对应类和方法 执行后将执行结果转发到jsp模板上 不用传方法名字了)
类上使用@Controller(web层)包扫描注解 方法上使用 @RequestMapping( "/方法名") 注解
方法: 返回值 ModelAndView 参数也是 ModelAndView类型
modelAndView.addobject 相当于request.setAttribute
modelAndView.setViewName("转发到哪个jsp模板")
@RequestMapping 也可以用在类上 @RequestMappin g("/类路径名") 但是只写在类上是没用的
@RequestMapping( "/方法名",params="xx") 表示访问此方法必须带一个 xx名字的参数
@RequestMapping( "/方法名",method=RequestMethod.POST)
代表访问此方法必须是以规定好的访问方式 访问 此代码表示必须使用post方法访问
(@RequestParam作用是给参数起个名字 然后赋值一个默认值 ) 例如起名字为 name="xid"
浏览器界面的text输入框name属性用这个名字 例如
如果参数是对象 那么名字需要1 1对应 前端text标签输入框的name值和对象成员属性名一致
如果参数是一个符合对象(参数的子属性也是一个对象)
那么前端text标签中\输入框的name属性要写 子属性对象.成员属性名 例如 user.id
如果参数是一个符合对象(参数的子属性其中一个是list集合)
那么前端text标签中\输入框的name属性要写 (集合名[索引值].成员属性名) 例如 users[0].id
如果参数是一个符合对象(参数的子属性其中一个是map集合)
那么前端text标签中\输入框的name属性要写 map集合名["key"] 例如: faxinren["name"] faxinren["phone"] faxinren["address"]
@RequestHeader("user-agent") 表示获取请求头user-agent的值 String类型
@CookieValue(value="JSESSIONID") 获取Cookie的名字为jsessionid的值
如果给的是一个字符串 而我要的是一个日期 则需要自己写一个类 并实现Converter接口
类中写方法把字符串转换成Date类型 并返回 然后在spring.xml中设置转换服务器