Java SpringWeb服务删除响应字符串中的多个空格
作为一种爱好,我自己学习春天。 观察一个问题 这是我正在使用的演示rest控制器Java SpringWeb服务删除响应字符串中的多个空格,java,spring-boot,Java,Spring Boot,作为一种爱好,我自己学习春天。 观察一个问题 这是我正在使用的演示rest控制器 @RestController class DemoHelloService { @GetMapping("/hello") public String hello(@RequestParam String name) { String Name = new String("Hello "+name); return Name;
@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可用“观察”如何在浏览器中查看响应。浏览器折叠额外的空间,因为这是HTML规范。使用任何不应该重新格式化文本的工具(网络选项卡、curl、Postman)。或者只需右键单击并选择“查看页面源代码”.谢谢Chrylis和JB。是的,你是对的。我在postman应用程序中看到所有空格的正确响应,也在HTML页面源代码中看到。