在tomcat服务器上运行我的GWT2应用程序时,我似乎遇到了String.indexOf(String s)/String.lastIndexOf(String s)的问题。
以下代码位于Presenter (客户端)中。它在通过GWT Eclipse插件运行时工作得很好,但在将应用程序部署到tomcat6服务器上时会返回"“。
int start = message.indexOf("<pre>")+5;
int end = message.lastIndexOf("</pre>");
return message.substring(start, end);如果我只执行message.substring(5,15),它会正确返回,但对于我想要做的事情来说,这还不够动态。
发布于 2010-10-21 08:40:05
事实证明,问题根本不是String的问题。
由于'message‘是:
SubmitCompleteEvent event;
message = event.getResults();消息依赖于服务器的类型: Tomcat或Jetty (通过Eclipse插件) Tomcat在其servlet响应中不使用<pre>标记。
我很抱歉没能早点给你这些宝贵的信息。
发布于 2010-10-20 14:31:20
我不认为webserver的改变应该影响客户端代码,因为GWT代码翻译成的是javascript。我能想到的一个场景是,你正在动态地填充'pre‘,在它被设置之前,你正在尝试获取它的内容。由于托管模式运行速度较慢,因此在将代码转换为javascript并直接运行到浏览器中时,这种方式可能会失败
如果上述情况属实,您可以尝试在计时器中运行'substring‘代码,该计时器计划在几个毫秒之后运行。
顺便说一句,如果您需要HTML标记中的文本,您可以使用DOM.getInnerHTML或DOM.getInnerText
发布于 2010-10-20 17:34:42
从GWT站点:
GWT您将花费大部分开发时间在开发模式下运行您的应用程序,这意味着您正在与您的
应用程序交互,而无需将其转换为JavaScript。
这意味着一些行为可以(will?)从托管模式切换到生产模式时更改。特别是在处理RegEx时,您可能会遇到不同之处。下面是一个示例:http://code.google.com/p/google-web-toolkit/issues/detail?id=3071
https://stackoverflow.com/questions/3975138
复制相似问题