在有视图解析器的情况下,在返回值为String的情况下,在方法的return后的字符串前加上
redirect:就会重定向,什么都不加就是转发。
在没有视图解析器的情况下,在返回值为String的情况下,在方法的return后的字符串前加上
redirect:就会重定向,加forword:就是转发。
但是要注意,指定了转发还是重定向只会就不会走视图解析器了、
默认的情况下是转发
可以利用转发,实现允许用户访问WEB-INF下保存的指定资源
参数接收
如果没有使用restful风格,我们方法的参数如果和用户提交的参数名一样的情况下就会直接赋值给
方法的参数,如果不一样的情况下就无法赋值。我们还可以给参数起别名,就和mybatis中的哪个
参数起别名差不多。
@GetMapping("/restful")
public ModelAndView test01(@RequestParam("key1") int a, @RequestParam("key2") int b){
System.out.println(a);
System.out.println(b);
ModelAndView view = new ModelAndView();
view.setViewName("show");
return view;
}
如果我们的方法参数是一个对象,那么我们提交的参数会首先按照名称匹配参数中的基本类型的参数,匹配不到就会和这个对象的属性匹配,名字一样就匹配成功,匹配不到就失败。
对于乱码问题,我们可以使用spring提供的过滤器自己配置到xml里面就可以用了。
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>