2

display と呼ばれるブール属性を持つ Bean があるとします。jquery からその属性の値にアクセスする方法はありますか? 何かのようなもの

$(document).ready(function(){ 
    if(bean.display){
       doSomething();
    }
}
4

2 に答える 2

4

この質問のコンテキストでは、JSF は単なる HTML/CSS/JS コード プロデューサーです。JSF に Bean プロパティを JS コードの一部であるかのように出力させるだけです。ELを通常の方法で使用するだけです。

<h:outputScript>
    $(document).ready(function(){ 
        if(#{bean.display}){
           doSomething();
        }
    }
</h:outputScript>

Web ブラウザで JSF ページを開き、右クリックしてソースを表示すると、生成された HTML 出力が表示されます。次のようになります。

<script type="text/javascript">
    $(document).ready(function(){ 
        if(true){
           doSomething();
        }
    }
</script>

JSF が HTML 出力を正しく生成するジョブを実行した場合、HTML 出力に Java/JSF/EL コードが表示されないことに注意してください。目的の HTML/CSS/JS コードを正確に生成するように、Java/JSF/EL コードを作成するだけです。


または、そのスクリプトが実際に JS ファイルに含まれている場合は、JSF に JS 変数として出力させます。

<h:outputScript name="some.js" />
<h:outputScript>var display = #{bean.display};</h:outputScript>

$(document).ready(function(){ 
    if(display){
       doSomething();
    }
}

bean.displayまたは、初期のJS オブジェクト構文を絶対に保持したい場合は、次のようにします。

<h:outputScript name="some.js" />
<h:outputScript>var bean = { display: #{bean.display} };</h:outputScript>

$(document).ready(function(){ 
    if(bean.display){
       doSomething();
    }
}
于 2013-09-12T18:38:32.910 に答える
1

outputTextまた、いくつかの中に保管することもできます。inputText

例えば:

<h:outputText id="my_display" value="#{myBean.display}" style="display:none"/>

次のように使用します。

$(document).ready(function(){ 
    if($("#my_display").text() === "someValue"){
       doSomething();
    }
}
于 2013-09-12T18:41:16.260 に答える