1

我正在使用struts2数据模型来接受请求参数,如果用户没有在输入元素中键入任何值,模型类中的相应属性设置为“”,但我希望它为null,而不是“”。这是我的代码:

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),现在这个条件返回 true,即使用户没有在<input type="text" name="user.userId" />. 也许我可以这样写:if(user.getUserId() != null && !"".equals(user.getUserId())),有点累,我的代码中有很多这样的地方,我想要一个方便的方法来实现这一点,过滤器可以做到这一点吗?是否有任何现有的过滤器或拦截器?谢谢。

4

1 回答 1

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()" >

Alternatively you could alter the getters to return null even if the value is empty String, (or vice versa) but usually this forcing is not good.

于 2013-03-19T08:51:35.123 回答