当方法的返回类型是void,如果在方法内不指定返回页面的话,会默认返回视图解析器中配置的目录+请求目录+.jsp。如在spring.xml文件中配置:
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 文件所在目录 -->
<property name="prefix" value="/WEB-INF/pages/"></property>
<!-- 文件后缀名 -->
<property name="suffix" value=".jsp"></property>
</bean>
jsp页面:
<a href="user/testVoid">testVoid</a><br>
方法:
@RequestMapping(“testVoid”)
public void testVoid(){
System.out.println("testVoid执行");
}
默认会返回:WEB-INF/pages//user/testVoid.jsp
当然在方法内可以用请求转发和重定向(注意两者路径名的不同之处)
请求转发:
@RequestMapping("testVoid")
public void testVoid(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
System.out.println("testVoid执行");
//直接相应
//相应中文乱码
response.setCharacterEncoding("UTF-8");
//浏览器解析
response.setContentType("text/html;charset=utf-8");
response.getWriter().print("你好");
//请求转发
request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request, response);
}
重定向:
@RequestMapping("testVoid")
public void testVoid(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
System.out.println("testVoid执行");
//相应中文乱码
response.setCharacterEncoding("UTF-8");
//浏览器解析
response.setContentType("text/html;charset=utf-8");
response.getWriter().print("你好");
//重定向
//response.sendRedirect(request.getContextPath()+"/WEB-INF/pages/success.jsp");//重定向不能访问WEB-INF
response.sendRedirect(request.getContextPath()+"/index.jsp");
}