《精通struts2 web项目开发实战》英文版代码手动调用VisitorFieldValidator出现空指针错误?是不是struts2.1对手动调用封闭了?

cheng1100o 2010-05-06 11:59:48
问题:原书用struts2.0开发,迁移到struts2.1。struts2.1有什么手动调用的替代方案?coditionnalvisitorvalidator可以实现选择式访问验证器族吗?
public void setAnnotationActionValidatorManager(AnnotationActionValidatorManager a){
avm=a;
};//我用spring管理AnnotationActionValidatorManager的连接 没有在spring中创建它的依赖项

Action中的动作方法:
public String execute() throws Exception {
.................
.................
try{
com.opensymphony.xwork2.validator.validators.VisitorFieldValidator validator =
new com.opensymphony.xwork2.validator.validators.VisitorFieldValidator();
validator.setAppendPrefix(true);
validator.setValidatorContext(new DelegatingValidatorContext(this));
validator.setFieldName(objType);
validator.setValueStack(ActionContext.getContext().getValueStack());
//AnnotationActionValidatorManager avm=new AnnotationActionValidatorManager();
validator.setActionValidatorManager(avm);
validator.validate(this);
}catch(NullPointerException e){e.printStackTrace();}

tomcat控制台异常栈:
in enterLDAction//正常进入excute方法
java.lang.NullPointerException
at com.opensymphony.xwork2.validator.AnnotationValidationConfigurationBu
ilder.processRequiredStringValidatorAnnotation(AnnotationValidationConfiguration
Builder.java:569)
at com.opensymphony.xwork2.validator.AnnotationValidationConfigurationBu
ilder.processAnnotations(AnnotationValidationConfigurationBuilder.java:162)
at com.opensymphony.xwork2.validator.AnnotationValidationConfigurationBu
ilder.buildAnnotationClassValidatorConfigs(AnnotationValidationConfigurationBuil
der.java:770)
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.bu
ildClassValidatorConfigs(AnnotationActionValidatorManager.java:220)
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.bu
ildValidatorConfigs(AnnotationActionValidatorManager.java:308)
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.bu
ildValidatorConfigs(AnnotationActionValidatorManager.java:287)
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.ge
tValidators(AnnotationActionValidatorManager.java:63)
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.va
lidate(AnnotationActionValidatorManager.java:102)
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.va
lidate(AnnotationActionValidatorManager.java:98)
at com.opensymphony.xwork2.validator.validators.VisitorFieldValidator.va
lidateObject(VisitorFieldValidator.java:162)
at com.opensymphony.xwork2.validator.validators.VisitorFieldValidator.va
lidate(VisitorFieldValidator.java:130)
at com.fdar.apress.s2.actions.event.EnterLocationDetailsAction.execute(E
nterLocationDetailsAction.java:122)
......................................
...全文
120 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧