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