@RequestMapping 注解能够处理 HTTP 请求的方法, 比如 GET, PUT, POST, DELETE 以及 PATCH。
常用方式如下写法:
@RequestMapping(method = RequestMethod.GET)
String get() {
return from get;
}
@RequestMapping(method = RequestMethod.DELETE)
String delete() {
return from delete;
}
@RequestMapping(method = RequestMethod.POST)
String post() {
return from post;
}
@RequestMapping(method = RequestMethod.PUT)
String put() {
return from put;
}
如果接口方法,需要同时支持GET/POST两种请求方式,怎么办呢? 如下写法可以解决:
@RequestMapping(value = /test, method = {RequestMethod.GET,RequestMethod.POST})
@ResponseBody
public String test(HttpServletRequest request) {
//遍历请求参数
Set> set = showParams(request).entrySet();
for (Map.Entry entry : set) {
if (!entry.getKey().toString().equals(submit)) {
log.info(param:{}={}, entry.getKey().toString(), entry.getValue().toString());
}
}
return ok;
}
private Map showParams(HttpServletRequest request) {
Map map = new HashMap();
Enumeration paramNames = request.getParameterNames();
while (paramNames.hasMoreElements()) {
String paramName = (String) paramNames.nextElement();
String[] paramValues = request.getParameterValues(paramName);
if (paramValues.length == 1) {
String paramValue = paramValues[0];
if (paramValue.length() != 0) {
map.put(paramName, paramValue);
}
}
}
return map;
}
关键是这一行:@RequestMapping(value = "/test", method = {RequestMethod.GET,RequestMethod.POST})