私の目的は、画面の幅、高さなどをJSFのセッションBeanに取得することです。私が見つけた例によると、これを行う方法は、javascriptの値を持つcommandButtonにparamを追加することです。次に、値はassignTo bean変数に転送されます。 noEscape属性は、変数名の代わりに値が渡されるようにします。a4j:paramでJavaScript値をBeanに渡す
これはほとんど動作します。何が起きているのかは、変数名のリテラル(例: "screen.height"は数字の代わりにbeanに巻かれます。私はスクリプト関数を呼び出すように変更しようとしましたが、それは助けになりませんでした。 (例ではこのように表示されていて、このボタンは便利な場所であり、とにかくアプリのために必要なので、私はcommandButtonの中にパラメータを入れています。
私は次のコード
<h:commandButton value="Log In" action="#{loginBean.login}" styleClass="buttons">
<a4j:param name="w" value="getWidth()" assignTo="#{browser.screenWidth}" noEscape="true" />
<a4j:param name="h" value="screen.height" assignTo="#{browser.screenHeight}" noEscape="true" />
<a4j:param name="a" value="navigator.userAgent" assignTo="#{browser.userAgent}" noEscape="true" />
</h:commandButton>
再び
<script>
function getWidth() {
return screen.width;
}
</script>
を持って、特定の問題は、私は豆ではなく、変数の値に変数名を取得していますということです。どんな助けでも大歓迎です。
ありがとうございました。これは私の問題を解決します。どのように私がh対a4jの部分を見逃したかわからない。 – wjr
@ user2418375うれしいことに、喜んで受け入れたとマークすることを忘れないでください! –