搞了一下午,郁闷死了。
- Java code
<action name="importData" class="importDataAction"> <result name="init"> /jsp/3_importData/import_data.jsp </result> <interceptor-ref name="defaultStack"/> <!-- 限制文件上传大小和类型 --> <interceptor-ref name="fileUpload"> <param name="maximumSize">10485760</param> <param name="allowedTypes"> application/msword,application/pdf,application/zip,application/x-zip-compressed </param> </interceptor-ref> </action>
- Java code
public class ImportDataAction implements Action { private ImportDataService importDataService; private File csvDataFile; public void setCsvDataFile(File csvDataFile) { this.csvDataFile = csvDataFile; } public File getCsvDataFile() { return csvDataFile; }public String importCsvData() throws IOException { importDataForm.setCsvDataPath(csvDataFile.getPath()); //csvDataFile为null return "init"; }
- HTML code
<s:form action="importData!importCsvData" enctype ="multipart/form-data"> <table> <tr> <td>导入csv基础数据(ZIP格式)</td> </tr> <tr> <td> <s:file name = "csvDataFile" ></s:file><s:submit value="提交"></s:submit> </td> </tr> </table> </s:form>
是哪里配错了啊?
------解决方案--------------------
你的Action里面的方法没有执行啊,纠结啊,肯定获取不到文件的路径了啊 ,你的配置文件有错啊“<action name="importData" class="importDataAction">”中间少了一个属性啊,默认调用的方法是execute这个方法,可是你的Action里面没有这个方法啊,你用的是importCsvData()这个方式,当然找不到了啊,所以。。。。。、。
------解决方案--------------------
<action name="importData" class="importDataAction" method="importCsvData">
默认execute方法...
你实现的是Action接口.应该实现execute()方法!
------解决方案--------------------
------解决方案--------------------
楼上们说的对
------解决方案--------------------
对对对,就是这回事
------解决方案--------------------
你这是跳转页面吗