SpringMVC(二)——转发和重定向、处理前端请求的数据(普通字符串/对象)
生活随笔
收集整理的這篇文章主要介紹了
SpringMVC(二)——转发和重定向、处理前端请求的数据(普通字符串/对象)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 轉發和重定向
- 2. 處理前端請求的數據
- 2.1 普通字符串
- 2.2 對象
1. 轉發和重定向
轉發:url不會發生變化 (查詢前端固定模板的數據)
@RequestMapping("/hello1")public String hello1(Model model){model.addAttribute("msg","Spring01");return "hello"; //普通返回}重定向:url會發生變化 (登錄業務時,跳轉頁面)
@RequestMapping("/hello2")public String hello2(Model model){model.addAttribute("msg","Spring02");return "redirect:/index.jsp";}2. 處理前端請求的數據
2.1 普通字符串
@Controller @RequestMapping("/user") public class HelloController {//處理前端請求的數據:普通字符串@RequestMapping("receive1")public String receive(String name,String password,Model model){System.out.println("接收到了name=>"+name+" pwd:"+password);String str="name:"+name+"pwd:"+password;model.addAttribute("msg",str);return "hello";} }點擊啟動測試:在前端輸出用戶名和密碼
如果輸入中文出現亂碼,可以在web.xml文件中添加一個亂碼過濾器
如在index.jsp頁面內創建一個表單
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html><head><title>$Title$</title></head><body><form action="/login" method="post"><p>用戶名:<input type="text" name="username"></p><p>密碼:<input type="password" name="password"></p><input type="submit"></form></body> </html>在控制層controller目錄下創建LoginController類
package com.zz.controller;import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class LoginController {@RequestMapping("/login")public String login(String username, String password, Model model){System.out.println("接收到了name=>"+username+" pwd:"+password);model.addAttribute("msg",username);return "hello";} }點擊啟動測試:輸入中文名,提交表單
出現亂碼現象:
解決辦法:在web.xml中添加一個亂碼過濾器
重啟測試后,發現不出現亂碼現象
有些極端情況下,SpringMVC 給我們提供的亂碼過濾器還不能解決亂碼問題,這時可以自定義一個過濾器
然后,只需要在web.xml中,在此處改為自定義過濾器的目錄位置即可!
如果前端表單內的屬性名和控制層不一致,如表單中用戶名為user, 而控制層是username,測試運行后結果如下:
發現name的值為null,為了解決這個問題,可在控制層方法的參數前增加注解@RequestParam(“user”)
再次測試結果:
2.2 對象
如果我們接收到了一個對象,只要保證,前端傳遞參數名和我們對象的屬性一致即可!
先創建一個user類:
package com.zz.pojo;import lombok.Data;@Data public class User {private int id;private String name;private String pwd; } @RequestMapping("/login2")public String login(User user, Model model){model.addAttribute("msg",user.getId());System.out.println(user.getName());System.out.println(user.getPwd());return "hello";}再在控制層controller目錄下的LoginController類內編寫
@RequestMapping("/login2")public String login(User user, Model model){model.addAttribute("msg",user.getId());System.out.println(user.getName());System.out.println(user.getPwd());return "hello"; }啟動測試:在頁面內顯示id,在控制臺顯示name和pwd
總結
以上是生活随笔為你收集整理的SpringMVC(二)——转发和重定向、处理前端请求的数据(普通字符串/对象)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringMVC(一)——入门案例
- 下一篇: 前端页面可视化设计工具