所以,我从已经建立的代码StringBuilder
元素获取返回参数,我需要将它插入到我的GWT应用程序中。在返回之前,此StringBuilder
元素已格式化为表格。
为了更加清晰,以下是生成StringBUilder
的方式以及返回的内容的代码。
private static String formatStringArray(String header, String[] array, int[] removeCols) {
StringBuilder buf = new StringBuilder("<table bgcolor=\"DDDDDD\" border=\"1\" cellspacing=\"0\" cellpadding=\"3\">");
if (removeCols != null)
Arrays.sort(removeCols);
if (header != null) {
buf.append("<tr bgcolor=\"99AACC\">");
String[] tokens = header.split(",");
//StringTokenizer tokenized = new StringTokenizer(header, ",");
//while (tokenized.hasMoreElements()) {
for (int i = 0; i < tokens.length; i++) {
if (removeCols == null || Arrays.binarySearch(removeCols, i) < 0) {
buf.append("<th>");
buf.append(tokens[i]);
buf.append("</th>");
}
}
buf.append("</tr>");
}
if (array.length > 0) {
for (String element : array) {
buf.append("<tr>");
String[] tokens = element.split(",");
if (tokens.length > 1) {
for (int i = 0; i < tokens.length; i++) {
if (removeCols == null || Arrays.binarySearch(removeCols, i) < 0) {
buf.append("<td>");
buf.append(tokens[i]);
buf.append("</td>");
}
}
} else {
// Let any non tokenized row get through
buf.append("<td>");
buf.append(element);
buf.append("</td>");
}
buf.append("</tr>");
}
} else {
buf.append("<tr><td>No results returned</td></tr>");
}
buf.append("</table>");
return buf.toString();
}
因此,上面返回的buf.toString();
将在GWT课程中收到,添加到面板并显示......现在问题是:如何实现所有这些? < / p>
我非常无能为力,因为我是新手,非常感谢任何帮助。
的问候,
chirayu已
答案 0 :(得分:1)
你能说得更具体吗,Chirayu? “已经建立的代码”(是一个serlvet?它是在服务器端还是在客户端运行?),它应该返回StringBuilder
,显然会返回一个String
,可以通过GWT轻松传输RPC,JSON等。
但就像Eyal所说,“你做错了” - 你手工生成HTML代码,这是额外的工作,导致security holes(XSS等)并且更容易出错。正确的方法是:
这样,您可以最大限度地减少客户端和服务器之间发送的数据,并获得更好的分离(更进一步,请查看MVP)。此外,服务器上的负载更少 - 双赢。
并且不再是新手,RTFM - 它就在那里。请注意,我在此处提供的所有链接都会导致官方文档:)