《Java從入門到放棄》框架入門篇:springMVC數據傳遞 (二)

上一篇講完了springMVC中數據傳遞中的接收數據,今天繼續完成數據的向後傳遞。

數據傳遞的核心對象ModelAndView,注意其包名,不要引用錯了!

正確的:org.springframework.web.servlet.ModelAndView

錯誤的:org.springframework.web.portlet.ModelAndView


我們繼續完成前面的登錄功能:

如果登錄成功則跳轉到index.jsp,並顯示“歡迎你:xxxx(用戶的暱稱)”。

如果登錄失敗則回到login.jsp,並顯示提示信息“豬腦子,賬號和密碼都輸不對!”。


具體實現步驟如下:

    1.1)修改User類,添加暱稱屬性。

public class User {
    
    private String loginid;
    private String loginpwd;
    private String nickname;    //用戶暱稱
    
    public String getLoginid() {
        return loginid;
    }
    public void setLoginid(String loginid) {
        this.loginid = loginid;
    }
    public String getLoginpwd() {
        return loginpwd;
    }
    public void setLoginpwd(String loginpwd) {
        this.loginpwd = loginpwd;
    }
    public String getNickname() {
        return nickname;
    }
    public void setNickname(String nickname) {
        this.nickname = nickname;
    }
}


    1.2)修改MyController類,添加login4方法(注意當前方法的返回值和之前方法的區別)。

    @RequestMapping("/login4")
    public ModelAndView login4(@ModelAttribute("user") User use){
        ModelAndView mav = new ModelAndView("index.jsp");    //默認目標視圖index.jsp
        
        return mav;
    }


    1.3)在login4方法內判斷賬號(admin)和密碼(666),正確就跳轉到index.jsp,錯誤則回到login.jsp

    @RequestMapping("/login4")
    public ModelAndView login4(@ModelAttribute("user") User use){
        ModelAndView mav = new ModelAndView("index.jsp");
        if(use.getLoginid().equals("admin") && use.getLoginpwd().equals("666")){
            use.setNickname("我是黃河你是海流");
            mav.addObject("user", use);            //添加需要傳遞到下一個視圖的數據
        }
        else{
            mav.addObject("msg", "豬腦子,賬號和密碼都輸不對!");
            mav.setViewName("login.jsp");        //修改視圖
        }
        return mav;
    }


    1.4)修改loing.jsp和index.jsp頁面,在頁面上加入信息的顯示。

        login.jsp頁面

  <body>
    <form action="login2.form" method="post">
        賬號:<input name="loginid" type="text" /><br />
        密碼:<input name="loginpwd" type="password" /><br />
        <input type="submit" value="登錄" />
    </form>
    <div style="color:red;">${msg }</div>
  </body>

        index.jsp頁面

  <body>
        歡迎你:${user.nickname }<br />
  </body>


    1.5)運行並查看結果(數據是否正確從Controller類傳遞到JSP頁面

wKioL1mRZwKxHtEeAAAmb43PZ2Q221.png    wKiom1mRZwOiTDakAAAfkZAuYjk393.png



===================================================

注意ModelAndView相關於使用request傳遞數據,如果有多個頁面需要使用用戶信息,那麼還是需要把user對象保存到session

===================================================

在springMVC中使用request,response,session對象也非常方便,

將login4的代碼修改如下(當前功能只使用session):

    @RequestMapping("/login4")
    public ModelAndView login4(@ModelAttribute("user") User use, 
            HttpServletRequest request, HttpServletResponse response, HttpSession session){
        ModelAndView mav = new ModelAndView("index.jsp");
        if(use.getLoginid().equals("admin") && use.getLoginpwd().equals("666")){
            use.setNickname("我是黃河你是海流");
            //mav.addObject("user", use);            //添加需要傳遞到下一個視圖的數據
            session.setAttribute("user", use);
        }
        else{
            mav.addObject("msg", "豬腦子,賬號和密碼都輸不對!");
            mav.setViewName("login.jsp");        //修改視圖
        }
        return mav;
    }


好了,打完收功!!!j_0003.gif


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章