我需要根据在 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>
}
问题
- 我的表单下拉菜单选择“是”并更新;更新后我的下拉菜单未显示“是”。它显示为空白。
- 在表单上选择“是”时 ConvertFromString 方法返回“true”,而 ConverToString 方法返回“false”。
动作类
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;
}