2012-02-13 5 views
-1

私は選択したオプションに応じてページを表示するためにhtmlコードを使用しています。しかし、今私は選択した選択肢をJava Beansにも渡したい。私のページを変更し、選択したオプションをjava beansに渡す方法

私の4つのオプション

<tr> 
<td class="title">Category:</td> 
<td class="field"> 
    <select name="list" onchange="display(this,'truck','car');"> 
    <option>Please select:</option> 
    <option value="invisible">Bike</option> 
    <option value="invisible">Quad</option> 
    <option value="car">Car</option> 
    <option value="truck">Truck</option> 
    </select> 
</td> 
</tr> 

スクリプト私は

<script type="text/javascript"> 
function display(obj,id1,id2) { 
    txt = obj.options[obj.selectedIndex].value; 
    document.getElementById(id1).style.display = 'none'; 
    document.getElementById(id2).style.display = 'none'; 
    if (txt.match(id1)) { 
     document.getElementById(id1).style.display = 'block'; 
    } 
    if (txt.match(id2)) { 
     document.getElementById(id2).style.display = 'block'; 
    } 
} 

</script> 

表示機能は、次のことをやって、私のページを変更している使用しています:

<tbody id="car" style="display: none;"> 

<tbody id="truck" style="display: none;"> 

ここで、選択したオプションをJava Beanに渡すにはどうすればよいですか?

答えて

0

AJAXを使用してください。これにより、Webページ上の何も変更することなく、サーバーにデータを送信することができます。

のようなフレームワークを使って、AJAX(docs)と他のクールなものをHTML5アプリケーションを構築することができます。

+0

jQueryを使用してJSFマネージドBeanプロパティを設定するにはどうすればよいですか? – BalusC

+0

ああ、申し訳ありません。 AJAXリクエストに応答するサーバー側のハンドラが必要です。 JSFについてはわかりません。タグ以外のJSF固有の質問は表示されません。 –

1

プレーンHTML要素の代わりにJSFコンポーネントを使用します。 JSFコンポーネントを使用すると、値をBeanプロパティにバインドできます。 HTML <select>要素を表すJSFコンポーネントは<h:selectOneMenu>で、<f:selectItem>または<f:selectItems>を使用してオプションを指定できます。

など。

private String vehicle; 

// Getter+setter. 

<h:selectOneMenu id="list" value="#{bean.vehicle}" onchange="display(this,'truck','car');"> 
    <f:selectItem itemValue="#{null}" itemLabel="Please select:" /> 
    <f:selectItem itemValue="invisible" itemLabel="Bike" /> 
    <f:selectItem itemValue="invisible" itemLabel="Quad" /> 
    <f:selectItem itemValue="car" itemLabel="Car" /> 
    <f:selectItem itemValue="truck" itemLabel="Truck" /> 
</h:selectOneMenu> 

あなたはJSF 2.xのを使用している場合、あなたはまた、単にすべてがJavaScriptの定型文の代わりに<f:ajax>を使用することができます。まともなJSFチュートリアルを進めるのに少し時間を費やすことをお勧めします。それは、すべてのHTML/JSを手作業で書くことによってJSFのポイントを完全に失っているようです。 HTML/JSを完全に制御するつもりならば、JSFのようなコンポーネントベースのMVCフレームワークではなく、Spring MVCのようなアクションベースのMVCフレームワークを探してみてください。

関連する問題