Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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
Java 如何在Spring中获取实际URL并进行转换?_Java_Spring_Http_Parsing_Url - Fatal编程技术网

Java 如何在Spring中获取实际URL并进行转换?

Java 如何在Spring中获取实际URL并进行转换?,java,spring,http,parsing,url,Java,Spring,Http,Parsing,Url,我想得到实际的URL,解析它并添加参数-param和value。这就是我所做的,我不知道如何继续 @Autowired private HttpServletRequest request; public String setParameter(String param, String value){ StringBuilder sb = new StringBuilder(); sb.append("&") .append(param) .append

我想得到实际的URL,解析它并添加参数-
param
value
。这就是我所做的,我不知道如何继续

@Autowired
private HttpServletRequest request;

public String setParameter(String param, String value){
    StringBuilder sb = new StringBuilder();
    sb.append("&")
    .append(param)
    .append("=")
    .append(value);

    return sb.toString();
}

根据您使用的配置/实现/spring版本,您有许多选项。 我在下面提到的第一个选项可能最适合您的需要


第一选择

创建一个方法并将请求作为参数传递。您不需要使用StringBuilder(样板代码),但如果愿意/需要,您可以使用

public String makeUrl(HttpServletRequest request, String param, String value) {
    return request.getRequestURL().toString() + "&" + param + "=" + value;
}

第二种选择

要获取当前URL,还可以使用绑定到当前线程的请求,方法是

((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest()
及加入

<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
文件:


真的很感谢男人们,它解决了我的问题,希望你们有一个愉快的一天:没有问题,你们也一样!:)
public String makeUrl(HttpServletRequest request, String param, String value) {
    ServletUriComponentsBuilder builder = ServletUriComponentsBuilder.fromCurrentRequestUri();
    builder.queryParam(param, value);
    URI uri = builder.build().toUri();
    return uri.toString();
}