为什么struts2的validate()方法没有跳转到指定的页面?
struts.xml 配置:
<struts>
……
<package name="struts2" extends="struts-default">
……
<action name="getDataFromDataFile" class="bwsac.GetDataFromDataFile">
<exception-mapping result="repeatgoodidException" exception="bwsac.exceptions.RepeatGoodIDException"></exception-mapping>
<result name="repeatgoodidException">/repeatgoodidexception.jsp</result>
<result name="input">/ioFileUpload.jsp</result>
<result name="success">/ioFileUpload-success.jsp</result>
</action>
</package>
</struts>
action相关代码(GetDataFromDataFile.java):
……
@Override
public void validate()
{
if(ioXmlDataFile == null){
System.out.println("上传的XML文件名为空");
this.addActionError("上传的XML文件名为空。ioXmlDataFile:null");
this.addFieldError("ioFileFromErp", "上传的XML文件名为空。ioXmlDataFile:null");
}
}
ioFileUpload.jsp相关代码
<%@page import="java.util.*,bwsac.*"%>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<script type="text/javascript">
function checkFile(){
if(document.getElementById("ioFileFromErp").value != "")
return true;
return false;
}
</script>
</head>
<body>
<s:actionerror/>
<!-- 注意action地址,还有enctype要写成multipart/form-data,和method="POST" -->
<form name="uploadform" method="post" action="ioFileUpload" ENCTYPE="multipart/form-data">
<p>选择来自ERP的入库单或出库单文件:
<input type = "file" name="ioFileFromErp" id = "ioFileFromErp" /><s:fielderror><s:param>ioFileFromErp</s:param></s:fielderror></br>
</p>
<input type="submit" value="上传" name="upload" onclick="return checkFile()">
</form>
</body>
</html>
运行中发现当ioXmlDataFile = null时服务器端确实打印出:"上传的XML文件名为空",可是页面没有跳转到ioFileUpload.jsp,不知哪里不对,应该如何找到错误?