【发布时间】:2011-11-07 05:01:35
【问题描述】:
在我使用 struts2 的项目中,我不使用验证框架,并且在我的 Action 类中没有任何操作方法返回“输入”。这是我的配置sn-p,
<action name="searchTracker" class="searchAction" method="searchTracker">
<result name="success">/jsp/searchTracker.jsp</result>
<result name="error">/jsp/searchTracker.jsp</result>
<result name="input">/jsp/searchTracker.jsp</result>
</action>
这里是动作类
public String searchTracker(){
this.clearErrorsAndMessages();
List<File> files = fileManager.retrieveFiles(patchNumBySearch);
if(files == null){
this.setTrackers(null);
addActionError("This patch number doesn't exist. Please choose another one !");
return ERROR;
} else {
if (files.size() == 0) {
addActionError("This patch doesn't include any tracker. Please create tracker or choose another patch");
return ERROR;
}
else {
List<Tracker> trackers = commonUtils.convertToTrackers(files);
this.setTrackers(trackers);
}
}
return SUCCESS;
}
如果我删除输入结果,它会抛出异常,像这样
"No result defined for action SearchTrackerAction and result input"
如果我检查后端日志,它会显示 “2011-11-07 00:09:13,841 调试
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.debug:68 - Errors on action com.harris.northstar.dbadesk.action.SearchTrackerAction@1d07b41, returning result name 'input'"
为什么会调用 DefaultWorkflowInterceptor 并返回结果名称输入?
如果我在配置中放回输入结果,异常就消失了。但是如果Action首先出错,即使我设置断点也不会再次成功,之后它不会进入那个方法searchTracker()。
【问题讨论】:
标签: validation input struts