Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring只返回查询字符串中的第一个参数_Spring_Spring Mvc_Curl_Spring Web - Fatal编程技术网

Spring只返回查询字符串中的第一个参数

Spring只返回查询字符串中的第一个参数,spring,spring-mvc,curl,spring-web,Spring,Spring Mvc,Curl,Spring Web,Spring只返回查询字符串中的第一个参数,后续参数丢失 使用curl调用以下URL时: curl -i -X GET -b usercookie.txt -c usercookie.txt http://localhost:8080/appname/users/user-id/campaigns?title=JSON&itemPerPage=5&page=0&orderBy=startDate 只有title参数具有非空值,request.getQueryStrin

Spring只返回查询字符串中的第一个参数,后续参数丢失

使用curl调用以下URL时:

 curl -i -X GET -b usercookie.txt -c usercookie.txt http://localhost:8080/appname/users/user-id/campaigns?title=JSON&itemPerPage=5&page=0&orderBy=startDate
只有
title
参数具有非空值,
request.getQueryString()
仅包含“title=JSON”

调用此函数时:

curl -i -X GET -b usercookie.txt -c usercookie.txt http://localhost:8080/appname/users/user-id/campaigns?page=0&title=JSON&itemPerPage=5&orderBy=startDate
request.getQueryString()
只包含“page=0”

控制器代码:

@Controller
public class Campaign {

...

    @RequestMapping(value = {"/users/{userId}/campaigns", "/users/{userId}/campaigns/"}, 
            method = RequestMethod.GET)
    @ResponseBody
    public CampaignListResponse getCampaignList(
            @PathVariable(value="userId") String reqUserId,
            @RequestParam(required=false) Integer page, 
            @RequestParam(required=false) Integer itemPerPage,
            @RequestParam(required=false) String orderBy,
            @RequestParam(required=false) String status,
            @RequestParam(required=false) String title,                                         
            HttpServletRequest request,
            HttpServletResponse response,
            @CookieValue("session") String session) {
        LOGGER.debug("reqUserId:{} page:{}, itemPerPage:{}, orderBy:{}, state:{}, title:{}", reqUserId, page, itemPerPage, orderBy, status, title);
        LOGGER.debug("query string:{}", request.getQueryString());
...
这可能是什么原因?我希望以下所有参数在request.getQueryString()中都有一个值,并且作为单独的@RequestParam变量:

page=0&title=JSON&itemPerPage=5&orderBy=startDate

EditSpring版本:3.2.2

是否尝试显式指定请求参数的名称

当我指定它们时,它适用于我:

@RequestMapping({"/users/{userId}/campaigns", "/users/{userId}/campaigns/"})
@ResponseBody
public void getCampaignList(
    @PathVariable(value="userId") String reqUserId,
    @RequestParam(value = "page", required=false) Integer page, 
    @RequestParam(value = "itemPerPage", required=false) Integer itemPerPage,
    @RequestParam(value = "orderBy", required=false) String orderBy,
    @RequestParam(value = "status", required=false) String status,
    @RequestParam(value = "title", required=false) String title) {

另一个选项是使用JDK8并启用
-parameters
javac
选项。

是否尝试显式指定请求参数的名称

当我指定它们时,它适用于我:

@RequestMapping({"/users/{userId}/campaigns", "/users/{userId}/campaigns/"})
@ResponseBody
public void getCampaignList(
    @PathVariable(value="userId") String reqUserId,
    @RequestParam(value = "page", required=false) Integer page, 
    @RequestParam(value = "itemPerPage", required=false) Integer itemPerPage,
    @RequestParam(value = "orderBy", required=false) String orderBy,
    @RequestParam(value = "status", required=false) String status,
    @RequestParam(value = "title", required=false) String title) {

另一个选项是使用JDK8并启用
-parameters
javac
选项。

是否尝试显式指定请求参数的名称

当我指定它们时,它适用于我:

@RequestMapping({"/users/{userId}/campaigns", "/users/{userId}/campaigns/"})
@ResponseBody
public void getCampaignList(
    @PathVariable(value="userId") String reqUserId,
    @RequestParam(value = "page", required=false) Integer page, 
    @RequestParam(value = "itemPerPage", required=false) Integer itemPerPage,
    @RequestParam(value = "orderBy", required=false) String orderBy,
    @RequestParam(value = "status", required=false) String status,
    @RequestParam(value = "title", required=false) String title) {

另一个选项是使用JDK8并启用
-parameters
javac
选项。

是否尝试显式指定请求参数的名称

当我指定它们时,它适用于我:

@RequestMapping({"/users/{userId}/campaigns", "/users/{userId}/campaigns/"})
@ResponseBody
public void getCampaignList(
    @PathVariable(value="userId") String reqUserId,
    @RequestParam(value = "page", required=false) Integer page, 
    @RequestParam(value = "itemPerPage", required=false) Integer itemPerPage,
    @RequestParam(value = "orderBy", required=false) String orderBy,
    @RequestParam(value = "status", required=false) String status,
    @RequestParam(value = "title", required=false) String title) {

另一个选项是使用JDK8并启用
-parameters
javac
选项。

从终端将整个URL放在双引号之间&是一个特殊字符,要求在后台运行任务。您不必更改代码

试试这个:

curl -i -X GET -b usercookie.txt -c usercookie.txt "http://localhost:8080/appname/users/user-id/campaigns?title=JSON&itemPerPage=5&page=0&orderBy=startDate"

从你的终端只要把整个网址之间的双引号&是一个特殊字符,要求在后台运行任务。您不必更改代码

试试这个:

curl -i -X GET -b usercookie.txt -c usercookie.txt "http://localhost:8080/appname/users/user-id/campaigns?title=JSON&itemPerPage=5&page=0&orderBy=startDate"

从你的终端只要把整个网址之间的双引号&是一个特殊字符,要求在后台运行任务。您不必更改代码

试试这个:

curl -i -X GET -b usercookie.txt -c usercookie.txt "http://localhost:8080/appname/users/user-id/campaigns?title=JSON&itemPerPage=5&page=0&orderBy=startDate"

从你的终端只要把整个网址之间的双引号&是一个特殊字符,要求在后台运行任务。您不必更改代码

试试这个:

curl -i -X GET -b usercookie.txt -c usercookie.txt "http://localhost:8080/appname/users/user-id/campaigns?title=JSON&itemPerPage=5&page=0&orderBy=startDate"