当struts2接受参数时,如何将空参数转换为null

时间:2013-03-19 06:07:03

标签: parameters struts2 null string

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

class User{
    private String userName;
    private String userId;

    //setter & getter omitted
}

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

 }

UserAction类中,我可能需要做一些业务验证或其他事情,我只使用语句lik if(user.getUserId() !== null),现在这个条件返回true,即使用户没有在{{1}中输入任何内容}}。 也许我可以像这样写:<input type="text" name="user.userId" />,它有点累,在我的代码中有很多这样的地方,我想要一个方便的方法来实现这一点,过滤器可以做到这一点吗?如果可以有任何exsiting过滤器或拦截器? 感谢。

1 个答案:

答案 0 :(得分: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,(反之亦然),但通常此强制效果不佳。