请求非预定义值的映射?

时间:2018-08-29 11:01:49

标签: java spring spring-mvc spring-boot

假设我们有一个简单的spring侦听器:

@RestController
    public class App {
        /*Listener*/
        @RequestMapping(value = "/{String Value}", method = //some method )
        public String retVal( //PathVariables ) {
                 //code
        }

在这种情况下,“字符串值”是预定义的字符串。


有什么方法可以创建一个具有变量值附加到URL的侦听器?

3 个答案:

答案 0 :(得分:1)

喜欢这个意思吗?

    @RequestMapping(value = "/URL/{aParam}")
    public void aMethod(
        @PathVariable(value = "aParam") String aParam)
 {
        ...
    }

答案 1 :(得分:1)

您可以使用@PathVariable来完成此操作。

@RestController
public class App {
   @RequestMapping(value = "/{StringValue}", method = //some method )
   public String retVal(@PathVariable(value = "StringValue") String StringValue) {
      System.out.println(StringValue); //it will print StringValue
   }
}

请参阅此How do I make @Controller mapping path configurable?

答案 2 :(得分:1)

正如其他人指出的那样,您可以使用Spring PathVariable批注。

另外,如果您在RequestMapping中定义的变量名称与方法参数名称匹配,则可以只写@PathVariable而不是@PathVariable(value = "variable")

@RestController
public class App {

    @RequestMapping(value = "/{variable}"/*, method = some method */)
    public String retVal(@PathVariable String variable) {
       //code
    }
}