有没有办法输入多行文本(存储为字符串)作为Java代码而不格式化?

Xon*_*ron 0 java formatting text code-formatting escaping

(对于Java中的多行字符串,请参阅:Java多行字符串.考虑到Web应用程序和HTML输出上下文,下面的这个问题可能会出现不同的答案.)

有没有办法输入多行文本(存储a String)作为Java代码而不格式化?

我想避免:

  1. "..." + 每行格式化(用Java包装文本所必需的)
  2. 转义文本中包含的引号.
  3. 避免\n在每一行上休息

这是一个MVC webapp,它是我输出的HTML代码,在这里和那里都配有一些变量.有问题的字符串只要它是表的整行,其中每行包含id,key,value等值.该.jsp文件只有一个变量,其中包含所有这些行的最终输出,由一种Java方法.我已经使用表单中的下拉框完成了相同的操作,生成了可能的选项<option>...</option>,但是当使用Java生成时,该代码很小而且很紧凑.相比之下,我坚持的这些行是庞大而复杂的.我希望输出HTML可读.

可能没有,但不得不问.永远不知道你会错过什么.

Ole*_*eev 5

我想你问这个问题是因为你要在Java代码中保留一个非常大的字符串.这很糟糕.

代码和资源是不同的东西,不建议混合它们.Java提供了许多管理资源的方法,您可以使用Properties来存储纯文本/ HTML资源,使用ResourceBundle来存储本地化资源.

PS你提到了变量 - 我希望你没有连接它们吗?foo=bar{0}在资源包中添加类似的东西然后String.format(bundle.getString("foo"), fooNum);应该是一种首选方式.

编辑

关于包含整个HTML表的Java变量 - 这就是发明JSP自定义标签的原因- 来封装你奇怪的HTML生成逻辑.在Tag Files中使用JSTL实现HTML表生成逻辑是可行的方法 - 您不需要编译任何东西.