Я разрабатываю веб-приложение, используя Struts2. Я хочу улучшить получение строки из форм. Для этого нужно обрезать всю строку, и если полученная строка пуста, установить null в поле.
Для этого я создал StringConverter .
public class StringConverter extends StrutsTypeConverter {
@Override
public Object convertFromString(Map context, String[] strings, Class toClass) {
if (strings == null || strings.length == 0) {
return null;
}
String result = strings[0];
if (result == null) {
return null;
}
result = result.trim();
if (result.isEmpty()) {
return null;
}
return result;
}
@Override
public String convertToString(Map context, Object object) {
if (object != null && object instanceof String) {
return object.toString();
}
return null;
}
}
Затем я добавил строку в xwork-conversion.properties
java.lang.String=com.mypackage.StringConverter
Вот и все. Но я не получил желаемого результата.
Метод convertToString () вызывается при создании формы jsp, но метод convertFromString () не вызывается.
Что я делаю не так? Как я могу получить то же самое поведение другим способом?
Пожалуйста, не предлагайте такие решения, как:
- удалить значение таких элементов формы, используя javascript.
- создать метод util, который сделает это с помощью отражения. Затем вызовите его для каждого компонента формы.
Спасибо заранее,
Алексей.