Java 如何将StringBuilder元素插入GWT应用程序?
因此,我从一个已经建立的代码中获取一个返回参数Java 如何将StringBuilder元素插入GWT应用程序?,java,gwt,Java,Gwt,因此,我从一个已经建立的代码中获取一个返回参数StringBuilder元素,我需要将它插入到我的GWT应用程序中。此StringBuilder元素在返回之前已格式化为表 为了更清楚,下面是如何生成StringBUilder的代码以及返回的内容 private static String formatStringArray(String header, String[] array, int[] removeCols) { StringBuilder buf = new StringBu
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();
}
私有静态字符串格式StringArray(字符串头、字符串[]数组、int[]removeCols){
StringBuilder buf=新的StringBuilder(“”);
if(removeCols!=null)
Arrays.sort(removeCols);
if(标题!=null){
buf.追加(“”);
String[]tokens=header.split(“,”);
//StringTokenizer tokenized=新的StringTokenizer(标题“,”);
//while(标记化的.hasMoreElements()){
for(int i=0;i0){
for(字符串元素:数组){
buf.追加(“”);
String[]tokens=element.split(“,”);
如果(tokens.length>1){
for(int i=0;i
因此,上面返回的buf.toString();
将在GWT类中接收,添加到面板并显示……现在的问题是:如何实现这一切?
我是个新手,完全不懂,非常感谢你的帮助
问候,Chirayu你能说得更具体一点吗,Chirayu?“已经建立的代码”(这是一个serlvet吗?它是在服务器端还是客户端运行?)应该返回
StringBuilder
,显然是返回字符串
,可以通过GWT-RPC、JSON等轻松传输。但是就像Eyal提到的,“你做错了”-你是手工生成HTML代码,这是额外的工作,导致(XSS等),并且更容易出错。正确的方法是:
- 您不需要在服务器上生成view/HTML代码(我假设上面的代码是在服务器上执行的),而只需要通过GWT中提供的获取相关数据
- 在客户机上,将来自服务器的数据放在一些漂亮的小部件中。如果您喜欢直接使用HTML,请查看。否则,旧方法也可以
为了不再是新手,RTFM-就在那里。注意,我在这里提供的所有链接都指向官方文档:)Chirayu,你能更具体一点吗?是“已经建立的代码”(是serlvet吗?它是在服务器端还是客户端运行?)它假定返回一个
StringBuilder
,显然返回一个String
,可以通过GWT-RPC、JSON等轻松传输。但是就像Eyal提到的,“你做错了”-你是手工生成HTML代码,这是额外的工作,导致(XSS等),并且更容易出错。正确的方法是:
- 您不需要在服务器上生成view/HTML代码(我假设上面的代码是在服务器上执行的),而只需要通过GWT中提供的获取相关数据
- 在客户机上,将来自服务器的数据放在一些漂亮的小部件中。如果您喜欢直接使用HTML,请查看。否则,旧方法也可以
为了不再是新手,请使用RTFM-一切都在那里。请注意,我在这里提供的所有链接都指向官方文档:)为什么要从字符串创建HTML实体?您可以创建GWT UI小工具(在客户端)然后使用可读的Java代码根据需要构建它们。@Eyal,谢谢你的建议,我试图使用已经编写好的代码,它返回一个StringBuilder元素并将其集成到我正在做的GWT部分。现有的代码有点复杂,我正在实习,很快就完成了,所以时间是有限的。无论如何,谢谢。你为什么要从字符串创建HTML实体?您可以创建GWT UI小工具(在客户端)并根据需要使用可读的Java代码构建它们。@Eyal,谢谢你的建议,我试图使用已经编写好的代码,它返回一个StringBuilder元素并将其集成到我正在做的GWT部分。现有的代码有点复杂,我正在实习,很快就完成了,所以时间是有限的。无论如何,谢谢。“别再做新手了”作为一名心理医生,你会做得很好的:谢谢,阿什温,有备用计划总是好的;)我不介意帮助解决最简单的问题,除非我看到提出问题的人没有做家庭作业(天啊,我听起来像个老师).另一方面,我有点嫉妒Chirayu,因为他可以在实习期间与GWT打交道:D(尽管我知道被推到GWT中间可能会让人困惑和沮丧-你想写一个简单的应用程序,而且很突然