我想得到低于输出的结果。
<html>
<head>
</head>
<body>
<table>
<tbody>
<thead>
Blah Blah table Header--Constant Part
</thead>
<tr>
some text-constant part
</tr>
<!---Main Customization Part-->
for(i=0;i<some value;i++)
{
<tr>
for(j=0;j<another value;j++)
{
if(some condition)
{
<td class=another varibale>some text</td>
}
else
{
<td class=yet another varibale>some text</td>
}
}
</tr>
}
</body>
</html>正如您所看到的,它是html的混合体,它将从java逻辑中生成其余的内容。现在我的问题来了--我怎样才能在独立的java(也就是不是jsp)中实现.I呢?我知道我可以把它写成一个普通的file.But,不知何故,我觉得这是一个丑陋的solution.Is,有没有更好的方法来完成它?基本上,我正在寻找一个好的java HTML构建器。已经检查过了-Freemarker。此外,我对任何语言的实现都持开放态度,因为java是我最喜欢的语言,所以我更喜欢它。
发布于 2012-03-28 23:42:12
Gagawa“允许开发人员在web或非web应用程序中轻松、动态地构建格式良好的超文本标记语言”。
它只需要使用一个jar,源代码可以免费阅读。
举个例子。
Div div = new Div();
div.setId("mydiv").setCSSClass("myclass");
A link = new A();
link.setHref("http://www.example.com").setTarget("_blank");
div.appendChild( link );
Img image = new Img( "some alt", "some-image.png" );
image.setCSSClass( "frame" ).setId( "myimageid" );
link.appendChild( image );
System.out.print( div.write() );这将生成以下HTML:
<div id="mydiv" class="myclass">
<a href="http://www.example.com" target="_blank">
<img alt="some alt" src="some-image.png" class="frame" id="myimageid">
</a>
</div>发布于 2012-03-28 22:45:24
如果你想坚持使用纯java,你可以使用模板。
例如:
... constant html ...
</tr>
{variablePart}
</tr>
... constant html ...将其保存在某个地方(例如,在.properties文件中),并将其加载到应用程序的String中。那就让你的常规建筑规范。
StringBuilder builder = new StringBuilder();
for(j=0;j<another value;j++)
{
if(some condition)
{
builder.append("<td class=another varibale>some text</td>");
}
else
{
builder.append("<td class=yet another varibale>some text</td>");
}
}最后得到你的HTML:
String finalHTML = templateHTML.replace("{variablePart}", builder.toString());它可能不是完美的,但它比你所拥有的要好一点。
发布于 2012-03-28 22:43:41
你可以考虑使用apache的velocity模板。在Web或应用程序服务器中运行不需要速度
How Velocity Works
User guide
https://stackoverflow.com/questions/9909801
复制相似问题