SpringMVC注解
@RequestMapping用法:
a. 用在controller方法上:
标记url到请求方法的映射, 其实就是通过一段url地址, 找到对应需要执行的controller方法
b. 用在controller类上:
窄化请求映射: 其实就是在类上给url加一层目录, 防止url重名.
c. 限定请求类型:
请求类型: get, post, put, delete, option等
如果没有限制请求类型, 不管get还是post都可以进入到这个方法
如果限制请求类型, 则只有限定的请求类型才可以进入到这个方法执行
@RequestMapping(value= "/list", method = RequestMethod.GET)
Controller方法返回值(需要知道如何指定页面的位置, 需要知道如何将数据返回给页面展示)
a. 返回modelandView:
可以借助于modelandview里面的方法, 指定页面的位置, 并且将数据放入这个对象, 可以返回到页面展示.
b. 返回string:
(1). controller方法返回string字符串, 那么这个字符串就是页面的位置, 数据可以借助于默认支持的参数model,
将数据放入model中, 就可以返回给页面展示, model底层使用的是request域.
(2). 请求转发:
request域中的数据可以带到转发后的方法中, 浏览器中的url不发生改变
在springMvc中,请求转发, controller方法必须返回string字符串,
返回的字符串以forward:开头, 后面跟转发后方法的url地址
例如: return "forward:/items/toEdit.action";
请求转发可以把数据放入request域中也可以放入model中, 都可以带到转发后的方法中.
(3). 重定向:
request域中的数据不可以带到重定向后的方法中, 浏览器中的url发生改变
controller方法必须返回string字符串, 返回的字符串以redirect:开头后面跟重定向的url地址
如果向把数据带到重定向后的方法中, 可以把数据放入model中, 就可以带到重定向后的方法中了.
例如: return "redirect:/items/toEdit.action";
c. 返回void:
一般情况不推荐使用:
只有在ajax调用的时候适应, 因为ajax异步请求, 从哪个页面发送的请求, 响应就会直接返回到哪个页面.
如果不是ajax请求, 使用返回void, 那么指定页面的位置就需要使用传统的请求转发或重定向写法, 这样就不走视图解析器, 需要写页面的完整路径.
这样就破坏了springMvc设计的整体流程.