Веб-сервис Spring удаляет несколько пробелов в строке ответа - PullRequest
1 голос
/ 12 января 2020

Как хобби учусь весной сам. Наблюдение за проблемой.

Здесь используется демонстрационный контроллер отдыха, который я использую.

@RestController

class DemoHelloService
{

    @GetMapping("/hello")
    public String hello(@RequestParam String name)
    {
        String Name = new String("Hello    "+name);        
        return Name;
    }
}

с URL localhost: 8080 / hello? Name = Проверка наблюдения ответа как «Hello Test». Проблема здесь в названии строки, у меня есть завершающие пробелы рядом с Hello. но этого не видно в ответе службы.

Любая помощь, какие изменения необходимо внести в конечные пробелы приема, также в службе.

Ответы [ 2 ]

1 голос
/ 12 января 2020

Попробуйте:

String Name = new String("Hello    "+name); 

Как вы можете видеть здесь: В чем разница между "" и ""? неразрывные спецификации не разрушаются в html, тогда как пространство делает.

Конечно, в любом реальном API вы не захотите возвращать html символов. Было бы лучше вернуть имя (в вашем примере это не относится) и формат на стороне клиента.

0 голосов
/ 12 января 2020

Ваша проблема не на стороне сервера. Возвращаемое значение в порядке. Браузер при отображении в виде HTML форматирует его и сокращает пробелы. Чтобы проверить это, создайте текстовый файл со строкой «Hello Test», сохраните его как файл Test. html и откройте его в браузере. Браузер отобразит его как «Hello Test». Как @ Athanas ios Катарас указал, что вам нужно заменить символ пробела на "". Чтобы сделать вашу жизнь немного проще, есть библиотека с открытым исходным кодом под названием MgntUtils (написанная мной), которая предоставляет утилиту, которая преобразует строки для сохранения отступов для Html. Проще говоря, он заменяет "" на "и" \ n "на"
". Поэтому, если вы хотите использовать библиотеку, ваш код будет выглядеть следующим образом:

@GetMapping("/hello")
public String hello(@RequestParam String name)
{
    String Name = TextUtils.formatStringToPreserveIndentationForHtml("Hello    "+name);        
    return Name;
}

Библиотека доступна как артефакты Maven здесь , на Github здесь , Javado c доступно здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...