@PathVariable 주석,spring 이 매개 변수 대역 값 기능 을 지원 하 는 사례

@PathVariable 의 역할
URL 동적 변수 가 져 오기

  @RequestMapping("/users/{userid}")
  @ResponseBody
  public String getUser(@PathVariable String userid){
    return "userid=" + userid; 
  }
@PathVariable 패키지 참조
spring 은 3.0 버 전부터 org.spring from work.web.bid.annotation.PathVariable 을 도 입 했 습 니 다.
이것 은 RESTful 의 이정표 가 있 는 방식 으로 springMVC 의 정 수 를 절정 에 이 르 렀 다.그 시대 에 위 챗 공식 번호 와 결합 한 개발 이 한 창 이 었 고 많은 것들 이 URL 매개 변수 가 값 을 가 진 기능 을 사용 했다.
@PathVariable 의 PathVariable 공식 doc 설명
- Annotation which indicates that a method parameter should be bound to a URI template variable. Supported for RequestMapping annotated handler methods in Servlet environments.
- If the method parameter is Map or MultiValueMap then the map is populated with all path variable names and values.
번역 하면:
-SpringMVC 에 서 는@PathVariable 주 해 를 사용 하여 URL 템 플 릿 인 자 를 연결 할 수 있 습 니 다(자리 표시 자 파라미터/매개 변수 대역 값)
-또한 controller 의 인자 가 Map(String,String)또는 MultiValueMap(String,String)이면@PathVariable 의 인자 도 받 아들 입 니 다.
@PathVariable 의 RESTful 시범
앞에서 말 한 역할 은 이미 하나 있 는데,지금 은 하나 더 제공 하고,다른 사람 이 방문 할 때 는 가능 하 다.http://localhost:8080/call/창 번호-검사 번호-1

/**
   *   
   */
  @PutMapping("/call/{checkWicket}-{checkNum}-{status}")
  public ApiReturnObject call(@PathVariable("checkWicket") String checkWicket,@PathVariable("checkNum") String checkNum,
      @PathVariable("status") String status) {
    if(StringUtils.isBlank(checkWicket) || StringUtils.isBlank(checkNum)) {
      return ApiReturnUtil.error("    ,   ,         ");
    }else {
      if(StringUtils.isBlank(status)) status ="1";
      try {
        lineService.updateCall(checkWicket,checkNum,status);
        return ApiReturnUtil.success("    ");
      } catch (Exception e) {
        return ApiReturnUtil.error(e.getMessage());
      }
    }
  }
추가:@PathVariable 수신 매개 변수 에 점 이 있 을 때 점 앞 데이터 만 캡 처 하 는 문 제 를 해결 합 니 다.
질문:

@RequestMapping(value = "preview/{fileName}", method = RequestMethod.GET)
public void previewFile(@PathVariable("fileName") String fileName, HttpServletRequest req, HttpServletResponse res) {
 officeOnlinePreviewService.previewFile(fileName, req, res);
}
원래 fileName 인 자 는 userinfo.docx 입 니 다.
하지만 결 과 는:userinfo
이것 은 분명히 내 가 원 하 는 것 이 아니다.
해결 방법:

@RequestMapping(value = "preview/{fileName:.+}", method = RequestMethod.GET)
public void previewFile(@PathVariable("fileName") String fileName, HttpServletRequest req, HttpServletResponse res) {
 officeOnlinePreviewService.previewFile(fileName, req, res);
}
매개 변수 fileName 이렇게 쓰 면 모든 점(마지막 점 포함)이 매개 변수의 일부분 으로 간 주 됩 니 다.

{fileName:.+}
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기