Spring如何在REST URL中处理#

时间:2015-09-25 18:39:52

标签: java spring rest spring-mvc

我有春季申请

其格式为

的网址

{URL} /位置/ USA#CA#92121

我想得到美国#CA#92121'作为我的REST控制器中的一个参数..我怎样才能实现?

目前唯一给予" USA"当我使用@PathVariable

2 个答案:

答案 0 :(得分:0)

您的网址需要进行网址编码。您可以在Java 8中使用URLEncoder。

请参阅Java URL encoding of query string parameters

基本上

onchange

答案 1 :(得分:0)

您需要对URL进行编码,以便它可以处理所有类型的字符,包括空格和#,$等特殊字符。

最好的方法是使用URLEncoder 然后要获得所需的值,您需要使用URLDecoder

例如:

package com.test;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.net.URLDecoder;

public class EncodeURL {

    public static void main(String args[]){
        string url = "{URL}/locations/USA#CA#92121";
        try {
            string encodedString = URLEncoder.encode(url, "UTF-8");
            System.out.println("Encoded String: " + encodedString);
            System.out.println("Decoded String: " + URLDecoder.dencode(encodedString, "UTF-8"));
        } catch (UnsupportedEncodingException ex) {
            ex.printStackTrace();
        }
    }
}