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";