0

GWT2アプリをTomcatサーバーで実行すると、String.indexOf(String s)/String.lastIndexOf(String s)に問題があるようです。

次のコードはプレゼンター(クライアント側)にあります。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

問題はStringにまったく関係していないことがわかりました。

'メッセージ'は次のとおりです。

SubmitCompleteEvent event;
message = event.getResults();

メッセージはサーバーのタイプによって異なります。TomcatまたはJetty(Eclipseプラグイン経由)Tomcatは<pre>サーブレット応答でタグを使用しません。

以前にその情報の塊を提供しなかったことをお詫びします。

于 2010-10-21T00:40:04.640 に答える
1

GWTコードが変換されるのはjavascriptであるため、Webサーバーの変更はクライアント側のコードに影響を与えるべきではないと思います。私が考えることができるシナリオの 1 つは、「事前」に動的に入力していて、設定する前にその内容を取得しようとしているというものです。ホスト モードの実行速度は遅いため、これは機能しますが、コードが JavaScript に変換されてブラウザに直接実行されると失敗する可能性があります。

上記が当てはまる場合は、数ミリ後に実行するようにスケジュールされたタイマーで「部分文字列」コードを実行することを試みることができます。

ところで、HTML タグ内にテキストが必要な場合に備えて、DOM.getInnerHTMLまたはを使用できます。DOM.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 に答える