0

在 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) 它会正确返回,但这对于我想做的事情来说不够动态。

4

3 回答 3

1

我认为网络服务器的更改不会影响客户端代码,因为它是 GWT 代码被翻译成的 javascript。我能想到的一种情况是您正在动态填充“预”,并且在设置之前,您正在尝试获取其内容。由于托管模式运行速度较慢,这可以工作,但在将代码翻译成 javascript 并直接运行到浏览器时可能会失败

如果上述情况属实,您可以尝试在计划在几毫秒后运行的计时器中运行“子字符串”代码。

顺便说一句,以防万一您需要 Text insde HTML 标签,您可以使用DOM.getInnerHTMLDOM.getInnerText

于 2010-10-20T06:31:19.660 回答
1

从 GWT 网站:

您将花费大部分开发时间在开发模式下运行应用程序,这意味着您正在与 GWT 应用程序进行交互,而没有将其转换为 JavaScript。

这意味着从托管模式切换到生产模式时,某些行为可以(将会?)改变。尤其是在处理 RegEx 时,您可能会遇到差异。这里是一个例子:http ://code.google.com/p/google-web-toolkit/issues/detail?id=3071

于 2010-10-20T09:34:42.340 回答
1

事实证明,问题根本不在于 String。

由于“消息”是:

SubmitCompleteEvent event;
message = event.getResults();

消息取决于服务器的类型:Tomcat 或 Jetty(通过 Eclipse 插件) Tomcat<pre>在其 servlet 响应中不使用标签。

我很抱歉没有早点提供这些信息。

于 2010-10-21T00:40:04.640 回答