验证bean的最佳方法

时间:2014-02-14 10:18:05

标签: java validation javabeans bean-validation

假设我有一个可以说10个属性的bean。 此外,我有一个错误onject具有三个属性即。 errorFlag,errCd和errMsg 我想验证bean属性顺序,我想在第一次出现错误时打破并填充错误对象。 我怎么能这样做,我想要最小的If。否则如果陈述。

ErrorObj Bean

public class ErrObj{
    private String errorMessage;
    private String errorCode;
    private boolean errorFlag;
    public String getErrorMessage() {
        return errorMessage;
    }
    public void setErrorMessage(String errorMessage) {
        this.errorMessage = errorMessage;
    }
    public String getErrorCode() {
        return errorCode;
    }
    public void setErrorCode(String errorCode) {
        this.errorCode = errorCode;
    }
    public boolean isErrorFlag() {
        return errorFlag;
    }
    public void setErrorFlag(boolean errorFlag) {
        this.errorFlag = errorFlag;
    }   
}

下面是我验证Bean的类 假设,我使用Custom util类的一些静态方法,它返回布尔值,具体取决于字段是否有效。

 public class ValidateMyBean{

    ErrObj errObj = new ErrObj();
    if(!CustomUtils.isValid(myBean.getProp1))
    {
       // set some error conditions
       errObj.errorCode("123");
       errobj.setErrorMessage("validation 1 Failed");
    }
    else if(!CustomUtils.isValid(myBean.getProp2))
    {

    }
    ..........so on

    }

所以,如果我的bean有10个属性,我必须验证每个属性,比如说3个验证方法,我不想写多个" if - elseif & #34;语句或写多个" if" 语句在每个if语句的末尾带有return语句,以防出现任何错误。 是否有任何清洁方式或有一些框架可以帮助我达到预期的结果? PS:这个Java应用程序使用Spring Core框架,是一个Web服务应用程序而不是MVC应用程序。

2 个答案:

答案 0 :(得分:0)

有许多验证工具。您可以查看以下示例:

Spring MVC: How to perform validation?

还有一个关于它的jsr规范:JSR-303

http://beanvalidation.org/1.0/spec/

享受

答案 1 :(得分:0)

使用JSP访问Java Bean:

使用JSP编写java bean程序变得更加容易。

useBean操作声明了一个用于JSP的JavaBean。声明之后,bean成为脚本变量,可以由JSP中使用的脚本元素和其他自定义标记访问。 useBean标记的完整语法如下:

<jsp:useBean id="bean's name" scope="bean's scope" typeSpec/>

此处scope属性的值可以是基于您的要求的页面,请求,会话或应用程序。 id属性的值可以是任何值,只要它是同一JSP中其他useBean声明中的唯一名称。

以下示例显示了其简单用法:

<html>
<head>
<title>useBean Example</title>
</head>
<body>

<jsp:useBean id="date" class="java.util.Date" /> 
<p>The date/time is <%= date %>

</body>
</html>

这将产生以下结果:

日期/时间是2010年9月30日星期四11:18:11 GST 2010