Java 如何在Spring中获取实际URL并进行转换?
我想得到实际的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
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();
}