2013-03-19 3 views
1

Я использую модель данных struts2 для принятия параметров запроса, если пользователь не вводит никаких значений во входном элементе, соответствующее свойство в классе модели устанавливается в "", но я хотите, чтобы он был нулевым, а не «". вот мой код:как преобразовать пустые параметры в null, когда struts2 принимает параметры

class User{ 
    private String userName; 
    private String userId; 

    //setter & getter omitted 
} 

class UserAction extends ActionSupport{ 
     private User user; 
     //setter & getter omitted 

} 

в UserAction класс, я, возможно, потребуется сделать некоторые бизнес проверки или что-то еще, я просто использовать заявления Лик if(user.getUserId() !== null), теперь это условие возвращает истину, даже если пользователь ничего не вводить в <input type="text" name="user.userId" /> , Возможно, я могу написать вот так: if(user.getUserId() != null && !"".equals(user.getUserId())), это немного утомительно, и в моем коде есть много мест, подобных этому, я хочу удобный способ достичь этого, может ли фильтр сделать это? если есть ли какой-либо exsiting фильтр или перехватчик? Спасибо.

ответ

1

Почему бы не выбрать более абстрактный, объектно-ориентированный, каркасно-независимый способ сделать это?

class User{ 
    private String userName; 
    private String userId; 
    //setter & getter omitted 

    public boolean isEmpty() { 
     return (userId==null || "".equals(userId)); 
    } 
} 

/* somewhere in your Java code: */ 
if (!user.isEmpty()) { 

<!-- somewhere in your JSP code: -->  
<s:if test="!user.empty()" > 

В качестве альтернативы можно изменить getter с, чтобы вернуться null даже если значение empty String, (или наоборот), но, как правило, это принуждение не хорошо.

+0

ОК, я принимаю ваш совет, спасибо. – hiway

+0

рад, что помог :) –

Смежные вопросы