UIフォーム要素で選択された値に基づいてデータを保存する必要があります
<s:select key="invoice.productSold" list="${productSold}" />
productSold 値のドロップダウン リスト ''(空白)、'はい'、'いいえ'。
私のブーリアンコンバーター
public class BooleanConverter extends StrutsTypeConverter {
@Override
/*From form*/
public Object convertFromString(Map context, String[] values, Class toClass) {
String value = values[0];
if (value == "") {
System.out.println("null");
return null;
}
if ("No".equalsIgnoreCase(value) || "0".equals(value)) {
return "false";
} else if ("Yes".equalsIgnoreCase(value) || "1".equals(value)) {
return "true";
} else {
return null;
}
}
@Override
public String convertToString(Map context, Object o) {
Boolean value = (Boolean) o;
return String.valueOf(value);
}
}
public class Invoice{
Boolean productSold;
<getter>
<setter>
}
問題
- 私のフォームのドロップダウンは「はい」を選択して更新しています。更新後、ドロップダウンに「はい」が表示されません。空白で表示されます。
- フォームで「はい」を選択すると「true」を返す ConvertFromString メソッドと、「false」を返す ConverToString メソッド。
アクションクラス
public UpdateAction extends ActionSupport{
protected List<String> productSold;
public List<String> getProductSold() {
List<String> myOptions= new ArrayList<String>();
myOptions.add("");
myOptions.add("Yes");
myOptions.add("No");
return myOptions;
}