| 範圍 | 配置文件位置 | 命名規則 | 生效範圍 |
|---|---|---|---|
| 全局 | 類路徑根目錄 | xwork-conversion.properties | 全應用同類型屬性 |
| 局部 | Action/Model 同包 | ActionClassName-conversion.properties | 僅該類指定屬性 |
StrutsTypeConverterconvertFromString(Map, String[], Class)convertToString(Map, Object)public class Point {
private int left, right;
// getter/setter 省略
}
public class PointConverter extends StrutsTypeConverter {
@Override
public Object convertFromString(Map context, String[] values, Class toType) {
String[] parts = values[0].split(",");
Point p = new Point();
p.setLeft(Integer.parseInt(parts[0]));
p.setRight(Integer.parseInt(parts[1]));
return p;
}
@Override
public String convertToString(Map context, Object o) {
Point p = (Point) o;
return p.getLeft() + "-" + p.getRight();
}
}
xwork-conversion.propertiescn.com.leadfar.model.Point=cn.com.leadfar.struts2.actions.PointConverter
UserAction.beginDate 用 yyyy-MM-dd,User.endDate 用 yyyy/MM/dd
public class BeginDateConverter extends StrutsTypeConverter {
private SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
// 實現 parse/format 邏輯
}
public class EndDateConverter extends StrutsTypeConverter {
private SimpleDateFormat fmt = new SimpleDateFormat("yyyy/MM/dd");
// 實現 parse/format 邏輯
}
# UserAction-conversion.properties beginDate=cn.com.leadfar.struts2.actions.BeginDateConverter # User-conversion.properties endDate=cn.com.leadfar.struts2.actions.EndDateConverter
# ActionClassName.properties invalid.fieldvalue.age=年齡必須為數字
${fieldErrors.age[0]}<s:fielderror fieldName="age"/>ul/li/span:覆蓋 template/simple/fielderror.ftlTypeConversionInterceptorweb.xml 配置