ページの先頭行へ戻る
 ApcoordinatorUJIタグリファレンス
FUJITSU Software

3.13 uji:name

uji:nameについて説明します。uji:nameには、以下の機能があります。

基本機能

uji:nameタグは、カレントオブジェクトを更新するための入力項目名を生成します。

アトリビュート

uji:nameタグのアトリビュートは指定できません。

コンテント

uji:nameタグのコンテントは記述できません。

使用例

JSP

    <uji:listRenderer type="element" >
       <li><input name="<uji:name/>" />
   </uji:listRenderer>
注意事項

カレントオブジェクトについては、各画面部品タグのレンダラを参照してください。

XML連携機能

uji:nameタグは、カレントオブジェクトを更新するための入力項目名を生成します。

イベントモデルではXML連携機能は利用できません。

アトリビュート

uji:nameタグのアトリビュートは指定できません。

使用例

XML

<root>
  <list>
    <item>緑茶</item>
    <item>紅茶</item>
  </list>
</root>

JSP

<form method="post">
  <uji:list bean="body" xpath="list" >
    <uji:listRenderer type="list" >
      <ul><uji:children /></ul>
    </uji:listRenderer>
    <uji:listRenderer type="element" >
      <li><input name="<uji:name/>" value="<uji:value/>"></li>
    </uji:listRenderer>
  </uji:list>
  <input type="submit" name="update" value="更新">
</form>

表示画面

この画面で、1行目のテキストフィールドに"こぶ茶"と入力し更新ボタンを押すと、XMLが更新されて次のようになります。

XML

<root>
  <list>
    <item>こぶ茶</item>
    <item>紅茶</item>
  </list>
</root>

イベントモデル

uji:nameタグは、カレントオブジェクトを更新するための入力項目名を生成します。

uji:nameタグは、uji:formタグの中に記述します。

アトリビュート

uji:nameタグは、イベントモデルで使用する際に以下のアトリビュートを指定します。これ以外のアトリビュートについては、“基本機能”を参照してください。

アトリビュート名

省略

意味

省略時の動作

validator

バリデータメソッドをメソッドバインディング式で指定します。

バリデータメソッドを使用しません。

converter

コンバータをコンバータIDもしくはバリューバインディング式で指定します。

コンバータを使用しません。

valueChangeListener

バリューチェンジリスナメソッドをメソッドバインディング式で指定します。

バリューチェンジリスナメソッドを使用しません。

immediate

値の変換と検証を処理するフェーズを指定します。trueの場合、Apply Request Valuesで処理されます。falseの場合、Process Validatorsで処理されます。

false

id

コンポーネントのIDを指定します。

自動的に付与されます。

コンテント

uji:nameタグのコンテントには以下のタグが記述できます。

  • f:validator(0個以上)

  • f:converter(最大1個)

  • f:valueChangeListener(0個以上)

使用例

JSP

<f:view>
  <uji:form name="myform" method="post">
    ...
      <uji:listRenderer type="element" >
        <li><input name="<uji:name validator='#{myBean.validate}' 
                          valueChangeListener='#{myBean.valueChanged}'/>" />
      </uji:listRenderer>
    ...
  </uji:form>
</f:view>

Java

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.ValueChangeEvent;
import javax.faces.validator.ValidatorException;

public class MyBean {

  /**
   * 入力値の検証を行います。
   * @param context 処理中のリクエストに関するFacesContext
   * @param component 正確さをチェック中のUIComponent
   * @param value 検証する値
   * @throws ValidatorException 検証が失敗した場合
   */
  public void validate(FacesContext context, UIComponent component, Object value) 
  throws ValidatorException {
    if(value == null || value.toString().length() == 0) {
      throw new ValidatorException(new FacesMessage("入力値がありません。"));
    }
  }

  /**
   * 値の変更が起きた場合に呼び出されます。
   * @param event 値が変更されたことの通知
   * @throws AbortProcessingException JavaServer Facesインプリメンテーションに、
      現在のイベントに追加の処理を行わないよう通知します。
   */
  public void valueChanged(ValueChangeEvent event) throws AbortProcessingException {
      Object oldVal = event.getOldValue();  // 変更前の値
      Object newVal = event.getNewValue();  // 現在の値
      // 値が変化した場合の処理を記述
  }
}
注意事項
  • uji:nameタグでバリデータを利用する場合、バリデータに渡されるオブジェクトの型はjava.lang.Stringです。

  • uji:nameタグでコンバータを利用する場合、getAsObjectメソッドの復帰値とBeanのプロパティの型が一致している必要があります。
    リクエストをモデルに設定する場合(javax.faces.convert.ConverterインタフェースのgetAsObject)のみ有効です。