Working with long strings (heredocs) in Java - the readable approach? [duplicate]

一世执手 提交于 2019-12-18 15:54:15

问题


I need to work with long strings containing line breaks in Java. Those are for HTML generation, but it is not the most important here.

I'm aware Java is cripple in a way it doesn't have heredocs. But there are other mechanisms I could use:

1) String concatenation (or StringBuilders), not very readable and copy-pasteable.

2) Storing strings in .properties files, either not very readable, but with higher copypasteability.

3) Storing each "heredoc" in seperate .txt file, quite readable and copypasteable, but resulting in a horde of txt files.

4) Template engines, like Velocity or Freemarker - moves design out of Java, requires a lot of map operations, it would be quite good, but the Velocity syntax and loop/if abilities aren't as readable as for example those from Smarty

Each have pros and contras, I'd like to choose 3 but the management prefers 1 because of pure ideological reasons. I'd like to have some standard for working with heredocs in Java, possibly library that makes things easier. I'd be gratefull for any suggestions (with good arguments) how to work with heredocs.

Thanx


回答1:


Try Rythm template engine, which is built as a high performance Java template engine with Razor like clean syntax.

Links:

  • Check the full featured demonstration
  • read a brief introduction to Rythm
  • download the latest package or
  • fork it

Updates

Rythm now has a web site: http://rythmengine.org, and a fiddle site: http://fiddle.rythmengine.org




回答2:


I hate to be "that guy", who suggests that you take a completely different approach than what you asked about, but have you looked at Groovy? It's JVM language, can be mixed freely with Java, and in addition to a bunch of other really nice language features, it has heredocs.



来源:https://stackoverflow.com/questions/10806973/working-with-long-strings-heredocs-in-java-the-readable-approach

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!