1. 程式人生 > >註解 轉發與重定向

註解 轉發與重定向

sys javax println web admin 數據 let out int

package controller;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
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; /** * 如何寫一個處理器: * 1.不用實現Controller接口。 * 2.可以在處理器類當中,添加多個方法,每個方法處理一種類型的請求。 * 3.方法名不作要求,返回類型可以是ModelAndView,也可以是String. * [email protected]
/* */ ,將該處理器納入容器進行關系。(也就是說,spring配置文件不用配置該處理器了) * 5.使用RequestMapping,告訴前端控制器(DispatcherServlet),請求路徑與處理器的方法的對應關系。(spring配置文件不用配置 * HandlerMapping了)。 */ @Controller public class HelloController { @RequestMapping("/tologin.do") public String hello(){ System.out.println("tologin()");
return "login"; } @RequestMapping("/login.do") //讀取請求參數的第一種方式: public String login1(HttpServletRequest request){ System.out.println("login1()"); String adminCode = request.getParameter("adminCode"); String pwd = request.getParameter("pwd"); System.out.println("adminCode:"+adminCode +" pwd:"+pwd); return "index"; } @RequestMapping("/login2.do") //讀取請求參數的第二種方式: //[email protected] public String login2(@RequestParam("adminCode") String adminCode,@RequestParam("pwd") String password){ System.out.println("login2()"); System.out.println("adminCode2:"+adminCode +" pwd2:"+password); return "index"; } @RequestMapping("/login3.do") //讀取請求參數值的第三種方式: //將請求參數封裝成一個javabean。 public String login3(AdminParam ap){ System.out.println("login3()"); System.out.println("code:"+ap.getAdminCode()+" pwd:"+ap.getPwd()); return "index"; } @RequestMapping("/login4.do") //向頁面傳值的第一種方式: //使用request public String login4(AdminParam ap, HttpServletRequest req){ System.out.println("login4()"); String adminCode = ap.getAdminCode(); System.out.println("adminCode:"+adminCode); //將數據綁定到request req.setAttribute("adminCode", adminCode); //springmvc默認使用轉發,將adminCode轉發給 index return "index"; } @RequestMapping("/login5.do") //向頁面傳值的第二種方式: 將數據封裝到ModelAndView對象裏面,然後將該對象作為方法的返回值。 //使用ModelAndView public ModelAndView login5(AdminParam ap ){ System.out.println("login5()"); String adminCode = ap.getAdminCode(); System.out.println(adminCode); Map<String,Object> data = new HashMap<String,Object>(); //相當於request.setAttribute("adminCode",adminCode); data.put("adminCode", adminCode); //構造ModelAndView對象 ModelAndView mav = new ModelAndView("index",data); return mav; } @RequestMapping("/login6.do") //向頁面傳值的第三種方式: //使用ModelMap。 public String login6(AdminParam ap,ModelMap mm){ System.out.println("login6()"); String adminCode = ap.getAdminCode(); System.out.println(adminCode); //相當於request.setAttrBute.. mm.addAttribute("adminCode", adminCode); return "index"; } @RequestMapping("/login7.do") //向頁面傳值的第四種方式: 這種方式保留到內存中時間長,可以用到重定向中取值。 //使用session public String login7(AdminParam ap,HttpSession session){ System.out.println("login7()"); String adminCode = ap.getAdminCode(); System.out.println(adminCode); session.setAttribute("adminCode", adminCode); return "index"; } @RequestMapping("/login8.do") //重定向一 public String login8(){ System.out.println("login8()"); return "redirect:toIndex.do"; } @RequestMapping("/toIndex.do") public String toIndex(){ System.out.println("toIndex()"); return "index"; } @RequestMapping("/login9.do") //重定向二 public ModelAndView login9(){ System.out.println("login9()"); RedirectView rv = new RedirectView("toIndex.do"); return new ModelAndView(rv); } }

--------------------------------------------------------------
package controller;

public class AdminParam {
    // 類型名稱要和網頁那麽相同
    private String adminCode;
    private String pwd;
    public String getAdminCode() {
        return adminCode;
    }
    public void setAdminCode(String adminCode) {
        this.adminCode = adminCode;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
    
}





註解 轉發與重定向