FormUtilクラスを使うと、一般的なJavaBeanの内容を、 form内のinputやselectのようなタグの内容にあてはめて出力させることができます。
template:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <form id="the_form"> <table> <tr> <td>Full Name:</td> <td><input name="fullName" type="text" /></td> </tr> <tr> <td>Sex:</td> <td>male:<input name="sex" type="radio" value="male" /><br /> female:<input name="sex" type="radio" value="female" /></td> </tr> <tr> <td>Subscribe to newsletter?:</td> <td><input name="subscribeNewsLetter" type="checkbox" value="true" /></td> </tr> <tr> <td>Country:</td> <td> <select name="country"> <option value="Japan">Japan</option> <option value="China">China</option> <option value="U.K">U.K</option> </select> </td> </tr> <tr> <td>Interests:</td> <td> Quidditch: <input type="checkbox" name="interests" value="Quidditch" /><br /> Herbology: <input type="checkbox" name="interests" value="Herbology" /><br /> Defence Against the Dark Arts: <input type="checkbox" name="interests" value="Defence Against the Dark Arts" /> </td> </tr> </table> </form> </body> </html>
show on browser:
Java Bean code:
public class Bean { private String fullName; private String sex; private boolean subscribeNewsLetter; private String country; private String[] interests; public String getFullName() { return fullName; } public void setFullName(String fullName) { this.fullName = fullName; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public boolean isSubscribeNewsLetter() { return subscribeNewsLetter; } public void setSubscribeNewsLetter(boolean subscribeNewsLetter) { this.subscribeNewsLetter = subscribeNewsLetter; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } public String[] getInterests() { return interests; } public void setInterests(String[] interests) { this.interests = interests; } }
application code:
public class Foo { public static void main(String[] args) throws Exception { Mixer2Engine m2e = new Mixer2Engine(); Html html = m2e.loadHtmlTemplate(new File("template.html")); Form form = html.getById("the_form", Form.class); Bean bean = new Bean(); bean.setFullName("Hally Potter"); bean.setSex("male"); bean.setSubscribeNewsLetter(false); bean.setCountry("U.K"); bean.setInterests(new String[]{"Quidditch","Defence Against the Dark Arts"}); FormUtil.populateForm(form, bean); System.out.println(m2e.saveToString(html)); } }
output:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> </head> <body> <form id="the_form"> <table> <tr> <td>Full Name:</td> <td> <input value="Harry Potter" type="text" name="fullName"/> </td> </tr> <tr> <td>Sex:</td> <td>male:<input value="male" type="radio" name="sex" checked="checked"/> <br/> female:<input value="female" type="radio" name="sex"/> </td> </tr> <tr> <td>Subscribe to newsletter?:</td> <td> <input value="true" type="checkbox" name="subscribeNewsLetter" checked="checked"/> </td> </tr> <tr> <td>Country:</td> <td> <select name="country"> <option value="Japan">Japan</option> <option value="China">China</option> <option value="U.K" selected="selected">U.K</option> </select> </td> </tr> <tr> <td>Interests:</td> <td> Quidditch: <input value="Quidditch" type="checkbox" name="interests" checked="checked"/> <br/> Herbology: <input value="Herbology" type="checkbox" name="interests"/> <br/> Defence Against the Dark Arts: <input value="Defence Against the Dark Arts" type="checkbox" name="interests" checked="checked"/> </td> </tr> </table> </form> </body> </html>
show on browser: