1

私はjavascriptでもjsfの専門家でもないので、グローバル変数を定義して、それをアクションバインドメソッドのパラメーターとして渡すことができるかどうかを尋ねます。多分それは例でより明確です...:)

私のxhtmlコードでは、次のようになります。

...
<script type="text/javascript">
  var isEdit = "false";

  //<![CDATA[ 
    function editSelected(selBox, inputFiled)
    {
      var htmlstring = selBox.options[selBox.selectedIndex].text;
      inputFiled.value = htmlstring;
      isEdit = "true";
    }
  //]]>
</script>

...

<h:commandLink
  styleClass="waiButton"
  value="#{lakshmiMsg.commonButtonAdd}"
  action="#{detailController.addCreator(**isEdit**)}"
  rendered="#{detailModel.mode != detailModel.viewMode}">
</h:commandLink>
...

このようなことが可能でしょうか?そうでない場合、おそらく他の方法がありますか?

4

2 に答える 2

1

JS で非表示の入力フィールドを変更できます。例えば

<h:inputHidden id="edit" value="#{bean.edit}" />

document.getElementById("form:edit").value = isEdit;

別の方法はeditSelected()、JS でジョブを実行するのではなく、純粋な JSF で<f:ajax>マジックを使用してジョブを実行することです。コードが不完全で自己文書化が不十分なため、これの機能要件が明確でないため、キックオフの例を示すことはできません。

于 2012-06-08T15:19:48.710 に答える
1

このようなことは、JavaScript で非表示のフォーム フィールドを更新できるようにすることで、おそらくうまく処理できます。commandLink のアクションはサーバーで評価されますが、JavaScript の関数はブラウザーで実行されます。

非表示のフォーム フィールドを使用すると、addCreator メソッドで (パラメータとしてではなく、リクエストから) チェックして、編集モードかどうかを確認できます。

于 2012-06-08T15:07:24.007 に答える