在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)它会正确返回,但这对我想做的事情来说还不够动态。
答案 0 :(得分:1)
我认为网络服务器的更改不会影响客户端代码,因为它是javascript哪个GWT代码被翻译成。我能想到的一个场景是你正在进行“预测”,并且在设置之前,你正试图获得它的内容。 由于托管模式运行较慢,这可以工作,但是当代码转换为javascript并直接运行到浏览器
时可能会失败如果上述情况属实,您可以尝试在计划运行几毫秒的计时器中运行'substring'代码。
顺便说一下,如果你需要Text insde HTML标签,你可以使用DOM.getInnerHTML
或DOM.getInnerText
答案 1 :(得分:1)
来自GWT网站:
你将花费大部分时间 开发时间运行你的 应用程序在开发模式中 意味着你正在与之互动 没有它的GWT应用程序 已被翻译成JavaScript。
意味着当从托管模式切换到生产模式时,某些行为可以(将?)发生变化。特别是在处理RegEx时,您可能会遇到差异。这是一个例子:http://code.google.com/p/google-web-toolkit/issues/detail?id=3071
答案 2 :(得分:1)
事实证明,问题根本不在于String。
因为'message'是:
SubmitCompleteEvent event;
message = event.getResults();
消息取决于服务器的类型:Tomcat或Jetty(通过Eclipse插件)
Tomcat在其servlet响应中不使用<pre>
标记。
我很抱歉早些时候没有提供这些信息。