天天看點

controller控制jsp彈窗_Spring MVC的Controller接受請求方式以及編寫請求處理方法

controller控制jsp彈窗_Spring MVC的Controller接受請求方式以及編寫請求處理方法

Controller接受請求參數的常見方法:

1、通過Bean接受請求參數:

建立POJO實體類

建立pojo包,并在該包中建立實體類UserForm,代碼:

package pojo;public class UserForm {    private String uname;//與請求參數名稱相同    private String upass;    private String reupass;    public String getUname() {        return uname;    }    public void setUname(String uname) {        this.uname = uname;    }    public String getUpass() {        return upass;    }    public void setUpass(String upass) {        this.upass = upass;    }    public String getReupass() {        return reupass;    }    public void setReupass(String reupass) {        this.reupass = reupass;    }}           

建立控制器類,在controller包中建立控制器類IndexController和UserController

其中@RequestMapping注解的作用個人淺顯的了解就是将方法或類注解為一個“路徑”的名稱,以便在HTML,JSP(視圖)向控制器發送請求時尋找到。

IndexController代碼:

package controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller//在這裡@Controller相當于@Controller(“indexController”)@RequestMapping("/index")public class IndexController {    @RequestMapping("/login")    public String login() {        return "login";//跳轉到“/WEB-INF/jsp/login.jsp”    }    @RequestMapping("/register")    public String register() {        return "register";    }}           

UserController代碼:

package controller;import javax.servlet.http.HttpSession;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestMapping;import pojo.UserForm;import service.UserService;@Controller//在這裡@Controller相當于@Controller(“userController”)@RequestMapping("/user")public class UserController {    //得到一個用來記錄日志的對象,這樣列印資訊的時候能夠标記列印的是那個類的資訊    private static final Log logger = LogFactory.getLog(UserController.class);    //将服務依賴注入到屬性userService    @Autowired     public UserService userService;    /**     * 處理登入     */    @RequestMapping("/login")    public String login(UserForm user, HttpSession session, Model model) {        if(userService.login(user)){            session.setAttribute("u", user);            logger.info("成功");            return "main";//登入成功,跳轉到main.jsp        }else{            logger.info("失敗");            model.addAttribute("messageError", "使用者名或密碼錯誤");            return "login";        }        }    /**     *處理注冊     */    @RequestMapping("/register")    public String register(@ModelAttribute("user") UserForm user) {        if(userService.register(user)){            logger.info("成功");            return "login";//注冊成功,跳轉到login.jsp        }else{            logger.info("失敗");            //使用@ModelAttribute("user")與model.addAttribute("user", user)功能相同          //在register.jsp頁面上可以使用EL表達式${user.uname}取出ModelAttribute的uname值            return "register";//傳回register.jsp        }    }}           

建立頁面視圖,結合視圖中更能了解@RequestMapping注解的作用,其中關于本次知識的核心代碼為标簽中的内容:

建立register.jsp代碼:

注冊畫面                   

姓名: 密碼: 确認密碼:

建立login.jsp代碼:

背景登入               
controller控制jsp彈窗_Spring MVC的Controller接受請求方式以及編寫請求處理方法

姓名: 密碼: ${messageError }

2、通過處理方法的形參接收請求參數

即将控制類UserConttroller中的register方法的代碼修改如下:

@RequestMapping("/register")/***通過形參的計收請求參數,形參名稱與請求參數名稱完全相同*/    public String register(String uname,String upass,Model model) {        if(userService.equals(uname)&&userService.equals(upass)){            logger.info("成功");            return "login";//注冊成功,跳轉到login.jsp        }else{            logger.info("失敗");            return "register";//傳回register.jsp        }    }           

3、通過HttpServetRequest接受請求參數(推薦使用):

即将控制類UserConttroller中的register方法的代碼修改如下:

@RequestMapping("/register")    public String register(HttpServletRequest request,Model model) {               String uname = request.getParameter("uname");               String upass = request.getParameter("upass");        if(userService.equals(uname)&&userService.equals(upass)){            logger.info("成功");            return "login";//注冊成功,跳轉到login.jsp        }else{            logger.info("失敗");            return "register";//傳回register.jsp        }    }           

其他@PathVariable、@RequestParam等不多贅述,原理相同。

controller控制jsp彈窗_Spring MVC的Controller接受請求方式以及編寫請求處理方法

作者:阿波羅的手

連結:https://www.cnblogs.com/linchenguang/p/11243444.html

繼續閱讀