我们发现经过一些简单的配置可访问了
在我们写的Crotroller中,可以有三种返回值
import org.springframework.web.servlet.ModelAndView;
@Controller
public class ACrotroller {
//返回值为ModelAndView,既可以设置视图又可以存储数据,是最强大的方法
@RequestMapping("/gg")
public ModelAndView t() {
ModelAndView mav = new ModelAndView();
mav.addObject("zxc","牛鸿纬");
mav.setViewName("/WEB-INF/jsp/hello.jsp");
return mav;
}
//返回值为String类型,如果需要设置数据则需要传入参数Model对象,官方推荐使用
@RequestMapping("/hh")
public String func(Model model) {
model.addAttribute("qqwrv","幽灵漫步");
return "/WEB-INF/jsp/haha.jsp";
}
@RequestMapping("xx")
public void xx() {
//这个很不方便。需要很多个参数,只有客户端使用axjx访问采用
}
}
我们通过浏览器访问后可以发现,虽然视图是jsp的视图,但是访问路径
http://localhost:8080/springmvc_01/hh 却没有变化,说明这是一个转发过程,而我们可以试一下重定向
@RequestMapping("/red")
public String redirect (Model model) {
model.addAttribute("qqwrv","幽灵漫步");
return "redirect:/WEB-INF/jsp/haha.jsp";
}
只需要设置一个字符串便可以设置转发以及重定向,当然这里重定向之后会报错,WEB-INF目录下的资源是不可以直接访问的。还有我们給每个视图的名称前面都写上/WEB-INF/JSP/有点繁琐,可以设置前缀,在我们自定义的配置文件中。
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>