若请求处理方法返回字符串,在返回的字符串前面加上"forward:/",例如"forward:/show",则服务器内部跳转到名为show的请求处理方法。示例代码如下:
public String testForward() {
return "forward:/show";
}
若请求处理方法返回字符串,在返回的字符串前面加上"redirect:/",例如"redirect:/show",则客户端重定向到名为show的请求处理方法。示例代码如下:
public String testRedirect() {
return "redirect:/show";
}
创建HelloWorldController
package com.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.po.User;
@Controller
public class HelloWorldController {
@RequestMapping("/testForward")
public String testForward() {
return "forward:/show";
}
@RequestMapping("/testRedirect")
public String testRedirect() {
return "redirect:/show";
}
@RequestMapping("/show")
public String show(Model model) {
User user=new User();
user.setUserName("baixue");
user.setPassWord("123");
model.addAttribute("user", user);
return "success";
}
}
创建User
package com.po;
public class User {
private String userName;
private String passWord;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
}
创建index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>index</title>
</head>
<body>
<a href="testForward">testForward</a>
<br>
<a href="testRedirect">testRedirect</a>
</body>
</html>
创建success.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>success</title>
</head>
<body>
用户名:${user.userName }
<br>
密码:${user.passWord }
</body>
</html>
启动Tomcat并访问index.jsp
测试服务器内部跳转,点击【testForward】
测试服务器内部跳转,点击【testRedirect】
若请求处理方法返回ModelAndView,调用setViewName方法设置需要转发的控制器,例如"mv.setViewName("forward:/show")",则服务器内部跳转到名为show的请求处理方法。示例代码如下:
mv.setViewName("forward:/show");
若请求处理方法返回ModelAndView,调用setViewName方法设置需要转发的控制器,例如"mv.setViewName("redirect:/show")",则客户端重定向到名为show的请求处理方法。示例代码如下:
mv.setViewName("redirect:/show");