SpringMVC傳值、轉寄、重新導向例子

來源:互聯網
上載者:User

標籤:spring   圖片   ati   port   ota   list   注入   訪問   map對象   

  1. 練習接收頁面參數值
    1. 使用request
    2. 使用@RequestParam註解
    3. 使用實體物件
  2. 練習向頁面傳出資料
    1. 使用HttpServletRequest和session
    2. 使用ModelAndView對象  (內部為利用HttpServletRequest的Attribute傳遞資料到頁面)
    3. 使用ModelMap對象 (內部為利用HttpServletRequest的Attribute傳遞資料到頁面)
    4. 使用@ModelAttribute註解 (內部為利用HttpServletRequest的Attribute傳遞資料到頁面)
  3. 練習使用session
    1. 在Controller方法參數上直接聲明HttpSession即可使用
  4. 練習重新導向
    1. 使用RedirectView
    2. 使用redirect:
package web;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.view.RedirectView;import entity.User;//非註解方式//public class HelloController implements Controller {//////    public ModelAndView handleRequest(HttpServletRequest request,//            HttpServletResponse response) throws Exception {//        System.out.println("Hello, Controller.");//        return new ModelAndView("jsp/hello");//    }////}@Controller@RequestMapping("/demo")public class HelloController{    private Integer age=22;        @RequestMapping("hello.do")    public ModelAndView hello(HttpServletRequest request,            HttpServletResponse response) throws Exception{           return new ModelAndView("jsp/hello");    }        /**     * 測試request接收參數*/    @RequestMapping("test1.do")    public ModelAndView test1(HttpServletRequest req){        String userName = req.getParameter("userName");        String password = req.getParameter("password");        System.out.println(userName);        System.out.println(password);        return new ModelAndView("jsp/hello");    }

    /**
    * 測試sping會自動將表單參數注入到方法參數
    * 最好每個形參前都添加@requestparameter
    * 通過反射只能得到方法參數類型不能等到方法參數名稱 沒有加註解能成功獲得為編譯器自動添加
    */

    @RequestMapping("test2.do")    public ModelAndView test2(String userName,            @RequestParam("password") String pwd){        System.out.println(userName+","+pwd);        return new ModelAndView("jsp/hello");    }        /**     * 測試對象接收參數     */    @RequestMapping("test3.do")    public ModelAndView test3(User user){        System.out.println(user);        return new ModelAndView("jsp/hello");    }        /**     * 使用ModelAndView傳出參數 內部 HttpServletRequest的Attribute傳遞到jsp頁面
   * ModelAndView(String viewName,Map data)data是處理結果 */ @RequestMapping("test4.do") public ModelAndView test4(User user){ Map<String, Object> data = new HashMap<String, Object>(); data.put("user", user); return new ModelAndView("jsp/hello",data); } /** * 使用ModelMap傳出參數 內部HttpServletRequest的Attribute傳遞到jsp頁面 */ @RequestMapping("test5.do") public ModelAndView test5(User user,ModelMap modelMap){ modelMap.put("user", user); return new ModelAndView("jsp/hello"); } /** * 使用ModelAttribute 內部HttpServletRequest的Attribute傳遞到jsp頁面 * 在Contoller的參數部分或者bean屬性方法上使用 */ @RequestMapping("test6.do") public ModelAndView test6(@ModelAttribute("user")User user){ return new ModelAndView("jsp/hello"); } @ModelAttribute("age") public Integer getAge(){ return age; } /** * session儲存 可以使用HttpServletRequest的getSession方法訪問 */ @RequestMapping("test7.do") public ModelAndView test7(HttpServletRequest req){ HttpSession session = req.getSession(); session.setAttribute("salary", 6000.0); return new ModelAndView("jsp/hello"); } //返回String 轉寄 @RequestMapping("/test8.do") public String test8(User user, ModelMap model) { model.addAttribute("user", user); return "jsp/hello"; } /** * 錯誤頁面 */ @RequestMapping("test9.do") public String test9(){ return "error/error"; } /** *使用RedirectView重新導向 */ @RequestMapping("test10") public ModelAndView test10(User user){ if(user.getUserName().equals("123")){ return new ModelAndView("jsp/hello");//test10.do 轉寄 }else{ return new ModelAndView(new RedirectView("test9.do"));//test9.do?age=22 重新導向 } } /** * 使用redirect重新導向 */ @RequestMapping("test11") public String test11(User user){ if(user.getUserName().equals("123")){ return "jsp/hello"; }else{ return "redirect:test9.do"; } }}

 

user實體

package com.tarena.entity;import java.io.Serializable;public class User implements Serializable {    private Integer id;    private String userName;    private String password;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    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;    }}

 

SpringMVC傳值、轉寄、重新導向例子

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.