2012-05-29 7 views
6

Potrzebuję pracować z długimi ciągami zawierającymi podziały wierszy w Javie. Są one przeznaczone do generowania HTML, ale nie jest to najważniejsze.Praca z długimi łańcuchami (heredocs) w Javie - czytelne podejście?

Wiem, że Java jest kaleką w sposób, w jaki nie ma ona heredocs. Ale istnieją inne mechanizmy, których mógłbym użyć:

1) String konkatenacja (lub StringBuilders), niezbyt czytelna i możliwa do skopiowania.

2) Zapisywanie ciągów w plikach .properties, niezbyt czytelnych, ale o wyższej dokładności.

3) Przechowywanie każdego pliku "heredoc" w osobnym pliku .txt, całkiem czytelnym i możliwym do skopiowania, ale skutkującym hordą plików txt.

silniki 4) Szablon, jak Velocity lub Freemarker - Przesuwa design Java, wymaga wielu operacji map, to byłoby całkiem dobre, ale składnia Velocity i pętla/czy umiejętności nie są tak czytelne jak na przykład te z Smarty

Każdy ma plusy i minusy, chciałbym wybrać 3, ale kierownictwo preferuje 1 z czysto ideologicznych powodów. Chciałbym mieć jakiś standard do pracy z heredocs w Javie, być może biblioteką, która ułatwia sprawę. Byłbym wdzięczny za wszelkie sugestie (z dobrymi argumentami), jak pracować z heredorkami.

Niż

+0

Czy istnieje powód nie można użyć jednego z istniejących narzędzi generacji szablonów/html dla Java? Jest ich wiele: Velocity, FreeMarker itp. –

+2

Giant powiązane wątki tutaj: http://stackoverflow.com/questions/878573/java-multiline-string/5069681#5069681 – scorpiodawg

+0

I kolejny wątek heredoc: http://stackoverflow.com/questions/2678483/simple-direct-heredoc-way-of-constructing-a-html-string-in-java –

Odpowiedz

7

Nienawidzę być „ten facet”, który sugeruje, że ma zupełnie inne podejście niż to, co prosiłeś o, ale spojrzał na Groovy? Jest to język JVM, można go dowolnie mieszać z Javą, a oprócz mnóstwa innych naprawdę fajnych funkcji językowych ma on heredocs.