Spring MVC 학습 - URL 매개 변수 전달 상세 정보

Spring Mvc를 학습하는 과정에서 몇 가지 주요 매개 변수를 먼저 이해할 필요가 있습니다.
@Controller:
클래스에 주석을 달면 컨트롤러를 프로그래밍하고 프로젝트 시작Spring에서 자동으로 검색하여 URL 루트 매핑을 합니다.

@Controller

public class UserAction{ } 
@RequestMapping
URL 매핑 경로를 지정합니다. 컨트롤러에 RequestMapping을 설정하면 구체적인 요청 방법도 경로를 설정하면 매핑된 경로는 두 경로의 중첩 상용 매핑입니다. 예를 들어 RequestMapping("url.html")
매핑 경로를 구성하려면:

@Controller
public class UserAction 
{
  @RequestMapping(value = "/get_alluser.html")
  public ModelAndView GetAllUser(String Id)
  {
  }
} 
위 구성 매핑
http://***:8080:web1/get_alluser.html:
@Controller에 @RequestMapping(value = "/user")을 추가하면 맵 경로가
http://***:8080:web1/user/get_alluser.html
@ResponseBody
메모 방법에 해당하는 문자열을 직접 반환합니다.
 @RequestParam
URL에 해당하는 매개변수를 Action 위에 자동으로 매핑합니다. RequestParam은 기본적으로 필수 매개변수입니다.
 @PathVariable
@RequestMapping 구성 지정한 형식의 URL 매핑 매개 변수 가져오기

 /*
   *    HTML, JSON  
   *   :
   *    /web1/urlinfo/getcontent.html?key=rhythmk
   *   /web1/urlinfo/getcontent.json?key=rhythmk
   * */
  @ResponseBody
  @RequestMapping(value = "/getcontent.**")
  public String GetContent(
      @RequestParam("key") String key,
      @RequestParam(value = "key2", required = false, defaultValue = "defaultValue") String key2) {
    System.out.println("getcontent  ");
    String result = "  - key:" + key + ",key2:" + key2;
    System.out.println(result);
    return result;
  } 


 /*
   * RequestMapping   Ant  URL  :
   *  :
   *   /urlinfo/geturlant/config.html?key=adddd
   */
  @ResponseBody
  @RequestMapping(value = "/geturlant/**.html")
  public String getUrlAnt(HttpServletRequest request) {
    String result = "? :" + request.getQueryString();
    return result;
  } 

 /*
   *  URL, 
   *   :/web1/urlinfo/geturlparam/12_123.html
   *   
   * */
  
  @RequestMapping(value = "/geturlparam/{id}_{menuId}.html")
  public ModelAndView getUrlParam(@PathVariable("id") String id,
      @PathVariable("menuId") String menuId) {
    ModelAndView mode = new ModelAndView(ShowMsg);
    mode.addObject("msg", " Id:" + id + ",menuId:" + menuId);
    return mode;
  } 

  /*
   *  Post  
   */
  @ResponseBody
  @RequestMapping(value = "/posturl.html", method = RequestMethod.POST)
  public String UrlMethod(@RequestParam String id) {
    return " Post , Id:" + id;
  } 

  /*
   *    cookie
   * */ 
  @RequestMapping("/writecookies.html")
  public ModelAndView writeCookies(@RequestParam String value,
      HttpServletResponse response) {

    response.addCookie(new Cookie("key", value));
    ModelAndView mode = new ModelAndView(ShowMsg);
    mode.addObject("msg", "cookies  ");
    return mode ;
  } 


  /*
    *   @CookieValue  key 
    * */
  @RequestMapping("/getcookies.html")
  public ModelAndView getCookie(@CookieValue("key") String cookvalue) {
    ModelAndView mode = new ModelAndView(ShowMsg);
    mode.addObject("msg", "cookies=" + cookvalue);
    return mode;
  } 

  /* 
   *   Servlet Api   
   *   action  HttpServletResponse,HttpServletRequest
   * */
  @RequestMapping("/servlet.html")
  public String Servlet1(HttpServletResponse response,
      HttpServletRequest request) {

    Boolean result = (request != null && response != null);
    ModelAndView mode = new ModelAndView();
    mode.addObject("msg", "result=" + result.toString());
    return ShowMsg;

  } 

  /*
   *   URL 
   *  
   *   : http://127.0.0.1:8080/web1/urlinfo/getobject.html?UserId=1&UserName=ad
   * */
  @RequestMapping("getobject.html")
  public ModelAndView getObject(UserInfo user) {
    String result = " ID:" + user.getUserId().toString() + ", :"
        + user.getUserName().toString();
    ModelAndView mode = new ModelAndView(ShowMsg);
    mode.addObject("msg", "result=" + result.toString());
    return mode;
  } 
페이지 이동:

  /* 
   *  
   * /web1/urlinfo/redirectpage.html
   * */
  @RequestMapping("/redirectpage.html")
  public String RedirectPage()
  {
    return "redirect:getcookies.html?r=10"; 
        
  } 
JSON으로 바로 돌아가기
요청한 URL 주소는 반드시 입니다.json 엔딩, 그렇지 않으면 이상
Failed to load resource: the server responded with a status of 406 (Not Acceptable) : The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept"headers () 
반환 엔티티:
 

@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
public class UserInfo {

   private Integer UserId;
   public Integer getUserId() {
    return UserId;
  }
  public void setUserId(Integer userId) {
    UserId = userId;
  }
  public String getUserName() {
    return UserName;
  }
  public void setUserName(String userName) {
    UserName = userName;
  }
  private String UserName;
   
   
} 

리턴 액션

@ResponseBody
  @RequestMapping("/getuser.json")
  public UserInfo GetUser()
  {
    System.out.println("getuser");
    UserInfo model=new UserInfo();
    model.setUserId(100);
    model.setUserName(" ");
    return model;
  } 

요청:
/web1/urlinfo/getuser.json
출력:

 {"userId":100,"userName":" "}
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기