반응형
Spring Boot 컨트롤러에서 쿼리 파라미터를 취득하려면 어떻게 해야 합니까?
저는 Spring Boot을 사용하여 프로젝트를 개발하고 있습니다.GET 요청을 수신하는 컨트롤러가 있습니다.
현재 다음 URL에 대한 요청을 받고 있습니다.
쿼리 파라미터를 사용하여 요청을 수락합니다.
컨트롤러 코드는 다음과 같습니다.
@RequestMapping(value="/data/{itemid}", method = RequestMethod.GET)
public @ResponseBody
item getitem(@PathVariable("itemid") String itemid) {
item i = itemDao.findOne(itemid);
String itemname = i.getItemname();
String price = i.getPrice();
return i;
}
@RequestParam 사용
@RequestMapping(value="user", method = RequestMethod.GET)
public @ResponseBody Item getItem(@RequestParam("data") String itemid){
Item i = itemDao.findOne(itemid);
String itemName = i.getItemName();
String price = i.getPrice();
return i;
}
한편, 다음과 같은 사용방법에 관해서는 인정된 답변이 전적으로 옳습니다.@RequestParam
올바른 파라미터가 항상 사용되는 것은 아니기 때문에 옵션<>을 사용하는 것이 좋습니다.또한 Integer 또는 Long이 필요한 경우 해당 데이터 유형을 사용하여 나중에 DAO에서 주조 유형을 피하십시오.
@RequestMapping(value="/data", method = RequestMethod.GET)
public @ResponseBody
Item getItem(@RequestParam("itemid") Optional<Integer> itemid) {
if( itemid.isPresent()){
Item i = itemDao.findOne(itemid.get());
return i;
} else ....
}
둘 다 받아들이다@PathVariable
그리고.@RequestParam
동시에/user
엔드포인트:
@GetMapping(path = {"/user", "/user/{data}"})
public void user(@PathVariable(required=false,name="data") String data,
@RequestParam(required=false) Map<String,String> qparams) {
qparams.forEach((a,b) -> {
System.out.println(String.format("%s -> %s",a,b));
}
if (data != null) {
System.out.println(data);
}
}
컬을 사용한 테스트:
- 컬 'http://localhost:8080/user/books의
- 컬 'http://localhost:8080/user?book=ofdreams&name=nietzsche의
봄은 부팅:2.1.6에서 아래와 같다:사용할 수 있다.
@GetMapping("/orders")
@ApiOperation(value = "retrieve orders", response = OrderResponse.class, responseContainer = "List")
public List<OrderResponse> getOrders(
@RequestParam(value = "creationDateTimeFrom", required = true) String creationDateTimeFrom,
@RequestParam(value = "creationDateTimeTo", required = true) String creationDateTimeTo,
@RequestParam(value = "location_id", required = true) String location_id) {
// TODO...
return response;
는 스웨거 api에서 나온다 @ ApiOperation은 평역, 그것은 apis 기록하는 데 사용된다.
같은 끝점에:둘 다 경로 변수와 쿼리 Param을 받아들이기 위해.
@RequestMapping(value = "/hello/{name}", method = RequestMethod.POST)
public String sayHi(
@PathVariable("name") String name,
@RequestBody Topic topic,
//@RequestParam(required = false, name = "s") String s,
@RequestParam Map<String, String> req) {
return "Hi "+name +" Topic : "+ topic+" RequestParams : "+req;
}
URLhttp://localhost:8080/hello/testUser?city=Pune&Pin=411058&state=Maha:처럼 보인다
나는 이것 또한에서 몇가지 예들을 가로질러 스프링 부팅 사이트에 왔다 관심이 있었다.
// get with query string parameters e.g. /system/resource?id="rtze1cd2"&person="sam smith"
// so below the first query parameter id is the variable and name is the variable
// id is shown below as a RequestParam
@GetMapping("/system/resource")
// this is for swagger docs
@ApiOperation(value = "Get the resource identified by id and person")
ResponseEntity<?> getSomeResourceWithParameters(@RequestParam String id, @RequestParam("person") String name) {
InterestingResource resource = getMyInterestingResourc(id, name);
logger.info("Request to get an id of "+id+" with a name of person: "+name);
return new ResponseEntity<Object>(resource, HttpStatus.OK);
}
언급URL:https://stackoverflow.com/questions/32201441/how-do-i-retrieve-query-parameters-in-a-spring-boot-controller
반응형
'programing' 카테고리의 다른 글
vue.js: nextTick은 데이터 변경 후 돔 렌더링을 완료하려면 어떻게 해야 합니까? (0) | 2022.07.18 |
---|---|
vue.js에서 Jquery 이벤트를 포착하는 방법 (0) | 2022.07.18 |
로그인 명령 구현 및 vuex 스토어 액세스 (0) | 2022.07.18 |
Vuex getter가 유형 오류를 표시함 " is not function" (0) | 2022.07.18 |
Vue 2 렌더 기능에서 슬롯을 사용하는 방법 (0) | 2022.07.18 |