0

selectOneListboxがあり、クリックすると、追加のパラメーター(id)をサーバーに渡す必要があります。現在のように、ユーザーには名前のリストが表示され、名前を選択すると名前を取得できます。ただし、各名前には、ユーザーに見せたくない一意のIDも関連付けられています。ユーザーに表示されることなく、選択した名前の一意のIDをバッキングBeanに渡すにはどうすればよいですか。出来ますか?f:paramの使い方を理解しようとしていましたが、ここでどのように機能するかわかりません。

                <h:selectOneListbox id="listBox" value="#{ScheduleMB.clients}" size="5"  
                rendered="#{ScheduleMB.showClients}" >
                    <f:selectItems value="#{ScheduleMB.clientList}" var="c"
                        itemLabel="#{c.lastName} #{', '} #{c.firstName}" itemValue="#{c.lastName}" />
                    <f:ajax event="click" listener="#{ScheduleMB.clickListener}"  
                        render="group" />
                </h:selectOneListbox>
4

1 に答える 1

1

<f:param>別の目的を果たします。可能であったとしても<f:param>、生成されたHTML出力に表示されることになります。エンドユーザーは、右クリックして[ソースを表示]を実行し、オプション値として定義されているIDを確認します。

最善の策は、別の一意の識別子、おそらく名と姓の一意の組み合わせに基づいてDBからIDを取得することです。

ちなみに、出力からIDを非表示にする理由はわかりません。それをオプション値として使用した場合ははるかに簡単になり、コンバーターを使用した場合はさらに簡単になり、全体#{c}をオプション値として渡すことができます。エンドユーザーは、いかなる方法でもそれを偽装/変更することはできません。JSFは、送信された値を、使用可能なオプションのリスト(とにかくサーバー側で定義されている)に対して再検証します。

于 2012-09-07T19:10:23.037 に答える