Сборка HTML только в коде Java - PullRequest
6 голосов
/ 28 июля 2011

Какой самый простой и быстрый способ создать объект String (я полагаю), содержащий HTML (с правильной кодировкой), который я могу вернуть, например, в @ResponseBody (Spring MVC)?

Ответы [ 3 ]

6 голосов
/ 28 июля 2011

Может быть несколько подходов.

Сначала вы можете использовать String или StringBuilder.Это хорошо для очень коротких HTML-кодов, таких как <html>Hello, <b>world</b></html>.

. Если HTML более сложный, проще использовать API.Взгляните на эти ссылки:

http://xerces.apache.org/xerces-j/apiDocs/org/apache/html/dom/HTMLBuilder.html

Библиотека Java HTML Builder (анти-шаблон)?

или поиск html builder java вGoogle.

Другая возможность является шаблонизацией.Если у вас действительно есть шаблон, в котором вы хотите заменить пару слов, вы можете написать свой HTML в виде файла *.html с отметками {0}, {} для параметров.Затем просто используйте java.text.MessageFormat для создания фактического текста HTML.

Следующий подход - использовать «настоящий» шаблонизатор, такой как Velocity.

6 голосов
/ 28 июля 2011

Это у вас работает?

StringBuilder htmlBuilder = new StringBuilder();
htmlBuilder.append("<html>");
htmlBuilder.append("<head><title>Hello World</title></head>");
htmlBuilder.append("<body><p>Look at my body!</p></body>");
htmlBuilder.append("</html>");
String html = htmlBuilder.toString();
0 голосов
/ 23 мая 2018

Хороший способ - извлечь стиль = "" в голову?

sb.append("<style>" +
"td { padding: 6px; border: 1px solid #ccc; text-align: left; }" + 
"th { background: #333; color: white; font-weight: bold; padding: 6px; border: 1px solid #ccc; text-align: left;}" +
"</style>");

вспомогательные методы:

void appendTag(StringBuilder sb, String tag, String contents) {
    sb.append('<').append(tag).append('>');
    sb.append(contents);
    sb.append("</").append(tag).append('>');
}
void appendDataCell(StringBuilder sb, String contents) {
    appendTag(sb, "td", contents);
}
void appendHeaderCell(StringBuilder sb, String contents) {
    appendTag(sb, "th", contents);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...