springboot重定向外部網頁
package com.liangxs.web; import java.io.IOException; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller//注意這里不能用@RestController,RestController由@Controller+ResponseBody組成,返回的是數據中支持跳轉視圖 @RequestMapping("/upload") public class TestController { @RequestMapping("/redirect") public String redirect(HttpServletResponse response) { return "redirect:http://www.baidu.com";//spring redirect方式 } @RequestMapping("/redirect1") public void redirect1(HttpServletResponse response) { try { response.sendRedirect("http://www.baidu.com");//HttpServletResponse方式 } catch (IOException e) { e.printStackTrace(); } } }
springboot頁面重定向問題
@GetMapping("/delemp/{id}") public String deleteEmp(@PathVariable("id")Integer id){ ? ? employeeDao.delete(id); ? ? return "redirect:/emps"; }
如上述代碼所示,接受前端請求后通返回"redirect:/emps"即可實現重定向到localhost:8080/emps請求中,此時不能寫成"redirect:emps"即最前端的斜杠不能省略,否則運行時報錯
Resolved [org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type ‘java.lang.String’ to required type ‘java.lang.Integer’; nested exception is java.lang.NumberFormatException: For input string: “emps”]。
在沒有@PathVariable的請求中可以寫成"redirect:emps"重定向返回(目前不知道報錯和可以省略斜杠的原因)
如下代碼所示,但建議都寫成"redirect:/emps"。
@PostMapping("/updateEmp") public String updateEmp(Employee employee){ ? ? employeeDao.save(employee); ? ? return "redirect:emps"; }
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持。
原文地址:https://blog.csdn.net/oThrowsException/article/details/114259472