プロジェクト

全般

プロフィール

操作

Modelのリストに追加・削除

modelの中のListに追加・削除する処理を追加しました。

活用ください。

  /**
   * モデルの中のListに追加
   * 
   * @param itemName
   * @param value
   * @param model
   */
  protected void addModelList(String itemName, String value, Model model) {

    Object obj = model.getAttribute(itemName);

    List<String> list;

    if (obj instanceof List<?>) {
      // 既存の List を使う
      @SuppressWarnings("unchecked")
      List<String> existing = (List<String>) obj;
      list = existing;
    } else {
      // 未設定 or 型違いなら新規作成
      list = new ArrayList<>();
    }

    // 値を追加
    list.add(value);

    // Model に再セット
    model.addAttribute(itemName, list);
  }

  /**
   * モデルの中のListに削除
   * 
   * @param itemName
   * @param value
   * @param model
   */
  protected void removeModelList(String itemName, String value, Model model) {

    Object obj = model.getAttribute(itemName);

    List<String> list;

    if (obj instanceof List<?>) {
      // 既存の List を使う
      @SuppressWarnings("unchecked")
      List<String> existing = (List<String>) obj;
      list = existing;
    } else {
      // 未設定 or 型違いなら新規作成
      list = new ArrayList<>();
    }

    // 値を追加
    list.remove(value);

    // Model に再セット
    model.addAttribute(itemName, list);
  }

※注意点 dispXを行った後で使用できます。

例:DISABLED_LISTを設定した後、最後に変更する とか

例:DISPLAY_NONE_LISTを設定した後、最後に非表示にする とか

      // │ disp4 へ進む 『MPKT021 を表示する』 第16版 追加
      disp4(form, bindingResult, model, httpSession, id, disabledList);

      // │ プロパティ.単片訂正データ.割増率 をトリムして数値化した値 = 0 の場合 第16版 追加
      if (wkProperty.getWkKT02().getUT02WRRT() == 0) {
        
        // │ 画面.割増率_上段 の制御を 0:非表示 にする 第16版 追加
        addModelList(DISPLAY_NONE_LIST,"KT0200039",model);
        // │ 画面.割増率_下段 の制御を 0:非表示 にする 第16版 追加
        addModelList(DISPLAY_NONE_LIST,"KT0200047",model);
      }

      return "MPKT021";

渡邉 拓英 さんが10ヶ月前に更新 · 0件の履歴