spring mvc annotation

spring mvc annotation 参数处理 (明确指定参数 匹配 自动转换类型) 普通属性和对象及属性: @RequestParam(“id”)注解,所以它将和id的URL参数绑定 @RequestBody 将HTTP请求正文转换为适合的HttpMessageConverter对象。 @ResponseBody 将内容或对象作为 HTTP 响应正文返回,并调用适合HttpMessageConverter的Adapter转换对象,写入输出流。 @PathVariable @PathVariable是用来对指定请求的URL路径里面的变量 eg: Java代码 <img class="star" src="http://yeak2001.iteye.com/images/icon_star.png" alt="收藏代码" /> "form/{id}/apply", method = {RequestMethod.PUT, RequestMethod.POST}) @PathVariable和@RequestParam的区别就在于: @RequestParam用来获得静态的URL请求入参 、 @PathVariable 当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。 示例代码: ```java``` http://blog.csdn.net/walkerjong/article/details/7946109# @Controller "/owners/{ownerId}") class RelativePathUriTemplateController { "/pets/{petId}") @PathVariable String petId, Model model) { // implementation omitted } } 上面代码把URI template 中变量 ownerId的值和petId的值,绑定到方法的参数上。若方法参数名称和需要绑定的uri template中变量名称不一致,需要在@PathVariable("name")指定uri template中的名称。 http://blog.csdn.net/zshake/article/details/9716849 http://yeak2001.iteye.com/blog/465336 http://blog.sina.com.cn/s/blog_72827fb10101pl9j.html

2014-05-07 · 1 min · 70 words · -

ModelAndView

ModelAndView http://itroop.iteye.com/blog/263845 的构造方法有7个。但是它们都是相通的。这里使用无参构造函数来举例说明如何构造ModelAndView 实例。 ModelAndView类别就如其名称所示,是代表了MVC Web程序中Model与View的对象,不过它只是方便您一次返回这两个对象的holder,Model与View两者仍是分离的概念。 最简单的ModelAndView是持有View的名称返回,之后View名称被view resolver,也就是实作org.springframework.web.servlet.View接口的实例解析,例如 InternalResourceView或JstlView等等: ModelAndView(String viewName) 如果您要返回Model对象,则可以使用Map来收集这些Model对象,然后设定给ModelAndView,使用下面这个版本的ModelAndView: ModelAndView(String viewName, Map model) Map对象中设定好key与value值,之后可以在视图中取出,如果您只是要返回一个Model对象,则可以使用下面这个ModelAndView版本: ModelAndView(String viewName, String modelName, Object modelObject) 藉由modelName,您可以在视图中取出Model并显示。 ModelAndView类别提供实作View接口的对象来作View的参数: ModelAndView(View view) ModelAndView(View view, Map model) ModelAndView(View view, String modelName, Object modelObject) 一个例子是org.springframework.web.servlet.view.RedirectView,ModelAndView预设是使 用forward来转发请求结果至视图,使用RedirectView的话,则会使用redirect将请求重导至视图,例如: … public ModelAndView handleRequest(….) … { …. return new ModelAndView(new RedirectView(this.getViewPage())); } …. 在这边,viewPage的地址是从服务器网页根目录开始指定,而不是Web应用程序的根目录,所以您的getViewPage()传回的地址必须像是 /springapp/pages/index.htm这样的地址,其中springapp是您的Web应用程序目录。 使用forward的话,网址列上并不会出现被转发的目标地址,而且forward是在Web应用程序之内进行,可以访问Web应用程序的隐藏目录,像是WEB-INF,然而forward只能在Web应用程序中进行,不能指定至其它的Web应用程序地址。 使用redirect的话,是要求客户端浏览器重新发出一个指定的请求地址,因此网址列上会出现被重导的目录地址,重导的请求是由浏览器发出,所以不能 访问Web应用程序中的隐藏目录,像是WEB-INF,然而重导是重新要求一个网页,所以可以指定至其它的Web应用程序地址。 DispatcherServlet会根据传回的ModelAndView来解析View名称,并处理给予的Model。View名称的解析是委托给实 作org.springframework.web.servlet.ViewResolver接口的实例,ViewResolver接口定义如下: public interface ViewResolver { public view resolveViewName(String, Locale locale) throws ServletException; } ViewResolver的一个实例是InternalResourceViewResolver,名称解析完之后,实际的View绘制与Model转 换处理是交给实作org.springframework.web.servlet.View的实例,View接口如下: public interface View { ...

2014-01-09 · 1 min · 153 words · -