繁体   English   中英

Spring Web 服务删除响应字符串中的多个空格

[英]Spring web service removes multiple spaces in the response string

作为一种爱好,我自己学习春天。 观察一个问题。

这是我正在使用的演示休息控制器。

@RestController

class DemoHelloService
{

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

使用 URL localhost:8080/hello?name=Test 观察响应为“Hello Test”。 这里的问题是在字符串名称中,我在 Hello 旁边有尾随空格。 但这在服务的响应中没有看到。

任何帮助需要对服务中的接收尾随空格进行哪些更改。

尝试这个:

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

正如您在此处看到的: “ ”之间有什么区别 和 ” ”? 非破坏性规范不会在 html 中折叠,而空间会。

当然,在任何真正的 api 中,您都不想返回 html 字符。 最好在客户端返回名称(在您的示例中它不适用)和格式。

您的问题不在服务器端。 返回值很好。 浏览器将其显示为 HTML 格式并剪切空格。 要测试它,请创建一个带有字符串“Hello Test”的文本文件并将其保存为 Test.html 文件并在浏览器中打开它。 浏览器将其显示为“Hello Test”。 正如@Athanasios Kataras 指出的那样,您需要用“”替换空格字符。 为了让您的生活更轻松,有一个名为 MgntUtils(由我编写)的开源库,它提供了一个实用程序,可以转换字符串以保留 Html 的缩进。 简单来说,它将“”替换为“”,将“\\n”替换为“
"。所以如果你想使用这个库,你的代码应该是这样的:

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

该库可在此处作为 Maven 工件获得,在 Github 上可此处获得,Javadoc 可在此处获得

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM