ユーザーがチェックボックスをクリックすると、jsonがチェックボックスの値として関連付けられ、その値がBeanクラスに渡されます。 そして、呼び出されたメソッドでは、StringがJSONオブジェクトに解析されます。 2つのチェックボックスを選択すると、正常に動作します。しかし、1つのチェックボックスを選択するとエラーになります。f:checkboxを使用してJSPからControllerに値を渡すチェックボックス
private ArrayList<String> Ancillary=new ArrayList<String>() ;
public ArrayList<String> getAncillary() {
for(int i=0;i<Ancillary.size();i++){
System.out.println(i+"Object:" +Ancillary.get(i)+"\n\n\n");
}
return Ancillary;
}
public void setAncillary(ArrayList<String> ancillary) {
Ancillary = ancillary;
}
は、ここで私はJSON内の特定のキーの値を印刷する私の方法である -
は、ここに私のチェックボックスBeanクラスです。
public Event updatePax(RequestContext context) throws Exception {
ExtrasMenu extrasMenu = (ExtrasMenu) context.getConversationScope().get(ScopeKeys.EXTRASMENU);
System.out.println("As a string:"+extrasMenu.getAncillary().toString());
JSONObject json=new JSONObject(extrasMenu.getAncillary().get(0));
System.out.println(json.get("firstName"));
}
そして、ここでは出力 - である
一つだけチェックボックスが選択されている場合- 二つ以上のチェックボックスが選択されている場合
0Object:{"firstName":"TIMOTHY"
1Object:"lastName":"WALKER"
2Object:"price":100}
-
0Object:{"firstName":"TIMOTHY","lastname":"WALKER","price":"50"}
1Object:{"firstName":"ANNE","lastname":"WALKER","price":"150"}