遅延バインディングに奇妙な問題があります。 usercategory
という名前のCookieの値を見て、プロパティを設定しますusercategory
遅延バインディングがコンパイル後に機能しない
<?xml version="1.0" encoding="UTF-8"?>
<!-- Defines the usercategory property and its provider function. -->
<module>
<define-property name="usercategory" values="c00,c01,c02" />
<collapse-property name="usercategory" values="*" />
<property-provider name="usercategory"><![CDATA[
// Look for the usercategory cookie
var cs = document.cookie.split(';');
for (var i = 0; i < cs.length; i++) {
var name = cs[i].substr(0, cs[i].indexOf("="));
var value = cs[i].substr(cs[i].indexOf("=") + 1);
name = name.replace(/^\s+|\s+$/g,"");
if (name == "usercategory") {
return unescape(value);
}
}
return "c00";
]]></property-provider>
</module>
:私は、次のモジュールを定義しています。
は、私には、例えば、いくつかのクラスの結合を延期するために、このプロパティapplication.gwt.xmlを使用します。
<inherits name="com.example.UserCategory"/>
<replace-with class="com.example.client.ui.menu.MainMenuView01">
<when-type-is class="com.example.client.ui.menu.MainMenuView"/>
<when-property-is name="usercategory" value="c01"/>
</replace-with>
私は(開発モードにいるとき、これは魔法のように動作すなわち内から私のアプリを実行しているときEclipse)。しかし、私がアプリケーションをコンパイルして(Jettyでは、これは問題ではありませんが)、デプロイされたバインディングが機能していないように見え、期待されるクラスがロードされません。私はチェックして、正しい値c01
でクッキーが正しく設定されていますが、クラスcom.example.client.ui.menu.MainMenuView01
はロードされていません。
何か不足していますか?私は何か間違っているのですか?
ありがとうございます!
何が起きているのかを見るために、デバッグ文をプロパティプロバイダに配置しようとしましたか?いくつかの値を解析して出力するために 'console.log'と同じですか? – Strelok
私はそれを試みました。私が期待するように、 'console.log'のメッセージが出てきますが、アプリケーションが期待通りに動作しません:' com.example.client.ui.menu.MainMenuView01'がロードされていません。しかし、私は、ブラウザのリロードボタンをクリックすると、すべて正常に動作することに気がつきました。なぜか分かりません。とにかく、私はユーザにリロードをクリックするように要求することはできません:( – MarcoS