自己定义了一个BigDecimal验证规则,不过测试时候出现错误,请高手执教.验证函数如下:public class  BigDecimalValidator implements Serializable {
public static  BigDecimal  validateBigDecimal(Object bean,ValidatorAction va,
Field field,ActionErrors errors,HttpServletRequest request){

BigDecimal result=null;
String value =null;
if(field.getProperty()!=null && field.getProperty().length()>0){
value=ValidatorUtil.getValueAsString(bean,field.getProperty());
}
if(isBigDecimal(value)){
result=formatBigDecimal(value);
if(result==null){
errors.add(field.getKey(),Resources.getActionError(request, va, field));
}
}
return result;


}

public static void main(String[] args ){

BigDecimal b=new BigDecimal(0);
System.out.println(b instanceof BigDecimal); 
}
public static boolean isBigDecimal(String value){
return formatBigDecimal(value)!=null;
}
public static BigDecimal formatBigDecimal(String value){
BigDecimal result=null;
try{
result=new BigDecimal(value);
}catch(Exception e){
e.printStackTrace();
}

return result;
}
}错误信息如下:[06-11-16 11:57:57:125 CST] 161a2b09 WebGroup      E SRVE0026E: [Servlet 错误]-[BeanUtils.populate]:org.apache.commons.beanutils.ConversionException: Zero length BigDecimal
at org.apache.commons.beanutils.converters.BigDecimalConverter.convert(BigDecimalConverter.java:162)
at org.apache.commons.beanutils.ConvertUtils.convert(ConvertUtils.java:379)
at org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:1001)
at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1252)
at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at com.resoft.java.utils.MyActionServlet.process(MyActionServlet.java:34)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:76)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:132)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:71)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:564)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
at com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:116)
at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:186)
at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:439)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:672)
Caused by: java.lang.NumberFormatException: Zero length BigDecimal
at java.math.BigDecimal.<init>(BigDecimal.java:222)
at org.apache.commons.beanutils.converters.BigDecimalConverter.convert(BigDecimalConverter.java:157)
... 36 more