我想通过编写Java(或Python)类来避免编写<table></table>
和其他类似的东西。例如:
Html html = new Html(); obj.setCoordinates(120,50); html.add(obj);
哪种API最适合这个?
更新
我目前正在尝试Vaadin,这是一个扩展GWT的Java Web框架。它提供的Web功能具有类似于桌面API的编码风格。
答案 0 :(得分:4)
您可以尝试使用GWT之类的内容。它是一个小部件库,您可以使用Java编写代码并将其编译为Javascript,并在加载页面时创建DOM / HTML。
我不确定我是否会建议从交互角度看相对静态的内容(加载后不使用Javascript,不使用AJAX等)。它主要是一个Web应用程序平台,而不是使用Java作为表示层的方法。
答案 1 :(得分:1)
有Jakarta ECS,但现在退休了。或者,您可以使用基于Java的模板引擎:Apache velocity
答案 2 :(得分:1)
与加里森先生的评论相同。
我目前正在研究一个充满了写HTML功能的系统。所以,而不是写作,
out.println("<input name=x size=10 value='foo'>")
通过巧妙地使用一组HTML标记对象,他们只需编写:
InputTag x=new InputTag();
x.setName("x");
x.setSize(10);
x.setValue("foo");
out.println(x.toHtml());
是的,这节省了很多工作!
答案 3 :(得分:0)
我实际上写了一些课程&amp;在Python中用于执行您正在考虑的事物类型的代码。我真的建议使用Python over Java。至于一些评论,是的,它更容易。我不必担心转义,引用或匹配结束这么多,因为代码构造为寻找对象成员并将它们格式化为html输出中的属性。 Python的内省对此非常有用。
答案 4 :(得分:0)
我可能会误解你的问题。像其他人一样,在打印HTML元素方面将所有HTML生成转移到代码中是一个非常糟糕的主意。一种更好的方法是为您尝试创建的HTML创建一个模板,留下插入动态内容的漏洞(例如,您有一个插入表行的位置。我使用StringTemplate这对你要做的事情听起来不错。请参阅此introductory page
中的填写表格示例