2014-02-14 74 views
0

假设我有一个允许说10个属性的bean。 另外我有一个错误,它有三个属性,即, errorFlag,errCd和errMsg 我想验证bean属性是否有序,并且我想打破错误的第一次出现并填充错误对象。我如何做到这一点,我想拥有最低限度的If。否则如果语句。验证bean的最佳方法

ErrorObj豆

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; 
    } 
} 

下面是一个使用自定义的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验证方法,我不想写多个“如果 - elseif的”陈述或复式写“如果“语句在每个if语句结尾处有return语句,以防出现任何错误。 有任何清洁方式或有一些框架可以帮助我达到预期的效果吗? PS:这个Java应用程序使用Spring Core框架,是一个web服务应用程序,而不是一个MVC应用程序。

回答

0

有许多验证实用程序。您可以检查这个例子:

Spring MVC: How to perform validation?

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

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

使用JSP享受

+0

这不是一个MVC应用程序。第一个链接是否适用? –

+0

JSR是一个验证标准。 MVC与否,jsr-303的实现是进行验证的标准方法。例如,hibernate在另一个边界使用符合jsr-303(或如此)的验证:http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html/validator-specifics.html#validator- customoptions-methodvalidation。所以是的,第一个链接适用。它只是一个在预定边界上的通用bean验证机制,在示例情况下,它在控制器绑定中,但它可以是任意的。如果你愿意的话,你也可以随时用自定义代码编写类似的东西 –

+0

我确实推荐了bean验证规范,但是想要补充说明它们已经达到了1.1版本:http://beanvalidation.org/1.1/ – nablex

0

访问Java组件:

使用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> 

这将产生以下结果:

的日期/时间是周四09月30日11点18分11秒GST 2010