Struts2 Struts 2自定义验证程序问题

Struts2 Struts 2自定义验证程序问题,struts2,Struts2,我有一个CRUD操作操作和3个自定义验证器 其中两个验证器工作正常,但另一个不能。它正确地处理验证,并返回相应的错误,但如果没有错误,工作流将不会完成,它将永远不会到达操作。就好像它被卡在了验证器中。日志文件中没有错误。如果我删除了验证器,那么操作就完成了 我不确定我做错了什么,我非常感谢您的帮助。如果您能发布有问题的验证器,那将是非常有帮助的。即使我从validate方法中删除了所有代码,它也没有到达操作。 package com.timesheet.validator; import ja

我有一个CRUD操作操作和3个自定义验证器

其中两个验证器工作正常,但另一个不能。它正确地处理验证,并返回相应的错误,但如果没有错误,工作流将不会完成,它将永远不会到达操作。就好像它被卡在了验证器中。日志文件中没有错误。如果我删除了验证器,那么操作就完成了


我不确定我做错了什么,我非常感谢您的帮助。

如果您能发布有问题的验证器,那将是非常有帮助的。即使我从validate方法中删除了所有代码,它也没有到达操作。
package com.timesheet.validator;

import java.util.Map;

import com.timesheet.action.TimeSheetAction;


import com.timesheet.util.TimeSheetClient;

import com.timesheet.util.TimeSheetHolder;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.validator.ValidationException;
import com.opensymphony.xwork2.validator.validators.ValidatorSupport;

public class TimeSheetSubmission extends ValidatorSupport{


 @Override
 public void validate(Object arg0) throws ValidationException {
  // TODO Auto-generated method stub

  Map session = ActionContext.getContext().getSession();
  TimeSheetAction act = (TimeSheetAction)ActionContext.getContext().getActionInvocation().getAction();
  TimeSheetClient client = act.getClient();

  if(session.get("holder") != null){
   TimeSheetHolder holder = (TimeSheetHolder)session.get("holder");

       if(!(excessTime(holder) && lessTime(holder))){

        client.cleanUp();
     addActionError(arg0);
     return;
    }else{

     client.cleanUp();
     return;
    }

  }
 }
 public boolean lessTime(TimeSheetHolder holder){
  boolean done = true;
  TimeSheetHolder.Day day = holder.dailyHours();
  switch(day){

   case Mon: setMessageKey("timeSheet.mon.less.hours"); 
        done = false;  
      break;
   case Tue: done = false;  
      setMessageKey("timeSheet.tue.less.hours"); 
      break;
   case Wed: done = false;  
      setMessageKey("timeSheet.wed.less.hours"); 
      break;
   case Thu: done = false;  
      setMessageKey("timeSheet.thu.less.hours"); 
      break;
   case Fri: done = false;  
      setMessageKey("timeSheet.fri.less.hours"); 
      break;
   default:  break;
   }
  return done;
 }
 public boolean excessTime(TimeSheetHolder holder){
  boolean done = true;
  TimeSheetHolder.Day day = holder.moreTime();
  switch(day){

   case Mon: setMessageKey("timeSheet.mon.excess.hours"); 
        done = false;  
      break;
   case Tue: done = false;  
      setMessageKey("timeSheet.tue.excess.hours"); 
      break;
   case Wed: done = false;  
      setMessageKey("timeSheet.wed.excess.hours"); 
      break;
   case Thu: done = false;  
      setMessageKey("timeSheet.thu.excess.hours"); 
      break;
   case Fri: done = false;  
      setMessageKey("timeSheet.fri.excess.hours"); 
      break;
   default:  break;
   }
  return done;
 }

}