You can use mixer2 with html5. You write template with xml syntax.
template:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
</head>
<body>
<article>
<section>
<h1>headline</h1>
<p id="hellomsg">here comes hello message</p>
</section>
</article>
</body>
<html>java code:
import java.io.File;
import org.mixer2.Mixer2Engine;
import org.mixer2.jaxb.xhtml.P;
import org.mixer2.jaxb.xhtml.Html;
public class HelloWorld {
public static void main(String[] args) throws Exception {
Mixer2Engine m2e = new Mixer2Engine();
Html html = m2e.loadHtmlTemplate(new File("HelloWorld.html"));
html.getById("hellomsg", P.class).replaceInner("Hello World !");
System.out.println(m2e.saveToString(html));
}
}result
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8"/>
</head>
<body>
<article>
<section>
<h1>headline</h1>
<p id="hellomsg">Hello World !</p>
</section>
</article>
</body>
</html>For example, you have to write <br /> rather than <br>. Also you should care property.
| NG | <input type="email" required> <input type="checkbox" checked> |
| OK | <input type="email" required="required" /> <input type="checkbox" checked="checked" /> |
Input checkbox = html.getById("fooCheck", Input.class);
checkbox.setChecked("checked");
// You get <input type="checkbox" checked="checked" />In html5, you can write any property start with date-* or aria-* at all tags.
import static org.mixer2.xhtml.TagCreator.*;
Div div = div();
div.setData("foo", "bar");
// you get <div data-foo="bar"></div>// html template: <div id="fooid" data-foo="bar">abc...</div>
String foo = html.getById("fooid", Div.class).getData("foo");
// String variable "foo" has "bar".By the same token, you can use getAria() and setAria() method.