(对于Java中的多行字符串,请参阅:Java multiline string。考虑到Web应用程序和HTML输出上下文,下面的问题可能会出现在不同的答案中。)
有没有办法输入多行文本(存储String
)作为Java代码而不进行格式化?
我想避免:
"..." +
格式(用Java包装文本所必需的)\n
每行中断它是一个MVC网络应用程序及其输出的HTML代码,在这里和那里都配有一些变量。有问题的字符串只要它是表的整行,其中每行包含id,key,value等值。.jsp
文件只有一个变量包含最终输出由Java方法生成的所有这些行。我已经使用表单中的下拉框完成了相同的操作,生成了可能的选项<option>...</option>
,但是当使用Java生成时,该代码很小且很紧凑。相比之下,我坚持的这些行是庞大而复杂的。我希望输出HTML可读。
可能不会,但不得不问。永远不知道你会错过什么。
答案 0 :(得分:5)
我猜你问这个问题是因为你要在Java代码中保留一个非常大的字符串。这很糟糕。
代码和资源是不同的东西,不推荐混合它们。 Java提供了许多管理资源的方法,您可以使用Properties来存储纯文本/ HTML资源,使用ResourceBundle来存储本地化资源。
PS你提到了变量 - 我希望你没有连接它们吗?在资源包中添加类似foo=bar{0}
的内容然后执行String.format(bundle.getString("foo"), fooNum);
应该是首选方式。
关于包含整个HTML表的Java变量 - 这就是JSP Custom Tags被发明的原因 - 来封装你奇怪的HTML生成逻辑。在Tag Files中使用JSTL实现HTML表生成逻辑是可行的 - 您不需要编译任何内容。
答案 1 :(得分:0)
如果用多行表示段落的存在,那么"\n"
就足够了。如果我想要更高级的多行字符串,通常要做的是创建一个内部带有变量的类,该变量将每行存储在String[]
或ArrayList<String>
中: