Struts 1 アクション フォームで 2 次元マップを使用しようとしています。ここで、マップに基づくアクション フォームの Struts ドキュメントを確認しましたhttp://struts.apache.org/release/1.2.x/userGuide/building_controller.html。ただし、これは 1 次元マップ用です。私はそれを機能させましたが、私は自分の解決策が好きではありません。基本的に、セッターとゲッターにコンボ キーを渡し、コンボ キーを正しいキーに分割する必要があります。これを行う別の方法はありますか。
public FooForm extends ActionForm {
private final Map<String, Map<String,String>> values = new HashMap<String, Map<String,String>>();
public void setValue(String key, Object value) {
String[] keys = key.split("_");
if (keys.length == 2) {
Map<String, String> innerValues = costValues.get(keys[0]);
if (innerValues == null) {
innerValues = new HashMap<String, String>();
}
innerValues.put(keys[1], value);
values.put(keys[0], innerValues);
}
}
public String getValue(String key) {
String[] keys = key.split("_");
if (keys.length == 2) {
Map<String, String> innerValues = values.get(keys[0]);
if (innerValues != null) {
return innerValues.get(keys[1]);
}
}
return null;
}
}
<html:text property="value(foo_bar)"/>