Чтобы сгенерировать HTML-код, вы должны добавить свой тег в ContainerTag, например html()
, а затем вызвать метод renderFormatted()
.
Например:
import static j2html.TagCreator.body;
import static j2html.TagCreator.form;
import static j2html.TagCreator.h1;
import static j2html.TagCreator.html;
import static j2html.TagCreator.input;
import j2html.tags.ContainerTag;
import j2html.tags.Tag;
public class _50480568 {
public static void main(String[] args) {
System.out.println(generateHTML());
}
private static String generateHTML() {
return html(generateBody()).renderFormatted();
}
private static ContainerTag generateBody() {
return body(generetaH1Title(), generateForm());
}
private static ContainerTag generateForm() {
return form().withMethod("post").withAction("/yourServlet").with(generateUserField(), generatePasswordField());
}
private static Tag generateUserField() {
return input().withType("text").withName("user").withId("user");
}
private static ContainerTag generetaH1Title() {
return h1("Hello World - Body!");
}
private static Tag generatePasswordField() {
return input().withType("password").withName("password").withId("password");
}
}
Поскольку вы работаете с классом Servlet, вместо этого вы пишете на консоли (System.out.println ()), вы должны написать в своем ответе на метод doGet следующее:
java.io.PrintWriter pw = resp.getWriter();
pw.println(generateHTML());
Это должно отобразить следующий HTML:
<html>
<body>
<h1>
Hello World - Body!
</h1>
<form method="post" action="/yourServlet">
<input type="text" name="user" id="user">
<input type="password" name="password" id="password">
</form>
</body>
</html>
Мой проект был построен с помощью Maven с использованием j2html версии 1.2.2
<dependency>
<groupId>com.j2html</groupId>
<artifactId>j2html</artifactId>
<version>1.2.2</version>
</dependency>