GET 매개 변수를위한 SpringMVC RequestMapping
URL에서 GET 매개 변수를 처리하도록 RequestMapping을 만드는 방법은 무엇입니까? 예를 들어이 URL이 있습니다.
http://localhost:8080/userGrid?_search=false&nd=1351972571018&rows=10&page=1&sidx=id&sord=desc
(jqGrid에서)
내 RequestMapping은 어떻게 생겼습니까? HttpReqest를 사용하여 매개 변수를 얻고 싶습니다.
이것을 시도 :
@RequestMapping("/userGrid")
public @ResponseBody GridModel getUsersForGrid(HttpServletRequest request)
하지만 작동하지 않습니다.
메서드 인수에 @RequestParam 을 사용 하여 Spring이 바인딩 할 수 있도록하고 @ RequestMapping.params 배열을 사용하여 Spring에서 사용할 메서드의 범위를 좁 힙니다. 샘플 코드 :
@RequestMapping("/userGrid",
params = {"_search", "nd", "rows", "page", "sidx", "sort"})
public @ResponseBody GridModel getUsersForGrid(
@RequestParam(value = "_search") String search,
@RequestParam(value = "nd") int nd,
@RequestParam(value = "rows") int rows,
@RequestParam(value = "page") int page,
@RequestParam(value = "sidx") int sidx,
@RequestParam(value = "sort") Sort sort) {
// Stuff here
}
이런 식으로 Spring은 모든 매개 변수가 존재하는 경우에만이 메서드를 실행하여 null 검사 및 관련 항목을 절약합니다.
다음 @RequestMapping
과 같이 추가 할 수 있습니다 .
@RequestMapping("/userGrid")
public @ResponseBody GridModel getUsersForGrid(
@RequestParam("_search") String search,
@RequestParam String nd,
@RequestParam int rows,
@RequestParam int page,
@RequestParam String sidx)
@RequestParam String sord) {
요청에서 모든 매개 변수를 가져옵니다. 디버깅 목적으로 만 :
@RequestMapping (value = "/promote", method = {RequestMethod.POST, RequestMethod.GET})
public ModelAndView renderPromotePage (HttpServletRequest request) {
Map<String, String[]> parameters = request.getParameterMap();
for(String key : parameters.keySet()) {
System.out.println(key);
String[] vals = parameters.get(key);
for(String val : vals)
System.out.println(" -> " + val);
}
ModelAndView mv = new ModelAndView();
mv.setViewName("test");
return mv;
}
uri를 변경하려는 경우을 사용할 수도 있습니다 PathVariable
.
@RequestMapping(value="/mapping/foo/{foo}/{bar}", method=RequestMethod.GET)
public String process(@PathVariable String foo,@PathVariable String bar) {
//Perform logic with foo and bar
}
NB: The first foo is part of the path, the second one is the PathVariable
This works in my case:
@RequestMapping(value = "/savedata",
params = {"textArea", "localKey", "localFile"})
@ResponseBody
public void saveData(@RequestParam(value = "textArea") String textArea,
@RequestParam(value = "localKey") String localKey,
@RequestParam(value = "localFile") String localFile) {
}
You should write a kind of template into the @RequestMapping
:
http://localhost:8080/userGrid?_search=${search}&nd=${nd}&rows=${rows}&page=${page}&sidx=${sidx}&sord=${sord}
Now define your business method like following:
@RequestMapping("/userGrid?_search=${search}&nd=${nd}&rows=${rows}&page=${page}&sidx=${sidx}&sord=${sord}")
public @ResponseBody GridModel getUsersForGrid(
@RequestParam(value = "search") String search,
@RequestParam(value = "nd") int nd,
@RequestParam(value = "rows") int rows,
@RequestParam(value = "page") int page,
@RequestParam(value = "sidx") int sidx,
@RequestParam(value = "sort") Sort sort) {
...............
}
So, framework will map ${foo}
to appropriate @RequestParam
.
Since sort may be either asc or desc I'd define it as a enum:
public enum Sort {
asc, desc
}
Spring deals with enums very well.
참고URL : https://stackoverflow.com/questions/13213061/springmvc-requestmapping-for-get-parameters
'UFO ET IT' 카테고리의 다른 글
iPhone OSStatus 코드를 유용한 것으로 어떻게 변환합니까? (0) | 2020.11.22 |
---|---|
HTTP 오류 404.3-IIS 7.5에서 찾을 수 없음 (0) | 2020.11.22 |
이미 존재하는 데이터베이스를 중심으로 플라스크 애플리케이션을 구축하는 방법은 무엇입니까? (0) | 2020.11.22 |
웹훅과 웹 소켓의 차이점 (0) | 2020.11.22 |
C #에서 배열을 추가하는 가장 효율적인 방법은 무엇입니까? (0) | 2020.11.22 |