无法理解Spring Boot代码流

时间:2018-02-04 06:56:53

标签: java spring debugging spring-boot program-flow

我有一个类似于以下的弹簧启动代码,它处理如下的特定映射 -

@RestController
@ResponseBody
public class SomeAPIController {

    @RequestMapping(
            value = "/some-api",
            method = RequestMethod.GET,
            produces = {"application/json", "application/xml"}
    )

    @ResponseStatus(HttpStatus.OK)
    @ResponseBody
    public SomeAPIPayload validateAPIUpdate(
            @Valid @RequestParam(value = "query", defaultValue="") String queryString

    )

但是在上面的代码中,如果我将查询作为"something"传递它可以正常工作但是如果我通过说"#something"则无法查询(我通过打印queryString值验证了它,并且它因此,我的理解@Valid(从javax.validation导入)正在进行一些验证并且不允许"#something"通过。我想知道如何追踪验证文件,或者如果其他错误如何找到它? 方向上的任何指针都将非常有用。

感谢。

2 个答案:

答案 0 :(得分:1)

哈希(#)之后的所有内容都被解释为锚/片段,并且不会像RFC 1738中所述那样发送到服务器。 要发送哈希符号,您需要将其编码为%23

答案 1 :(得分:1)

#中的

URL代表fragment identifier。因此,如果您的查询为http://example.com?query=#something,则#something部分将被视为片段标识符,query参数为空。