我正在尝试结合使用Struts2和Spring上传文件。但是,在到达action类之后,我的文件、filename
和文件内容类型都显示为null
。我试图寻找问题,但没有结果。下面是我上传文件的代码。
index.jsp
:
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<s:head />
</head>
<s:actionerror />
<s:form action="uploadAction" method="POST" enctype="multipart/form-data">
<s:file name="fileUpload" label="Choose File" size="40" />
<s:submit value="Upload" name="submit" />
</s:form>
Struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"/>
<package name="a" extends="struts-default">
<action name="resultAction" class="ManagePlanDataFileUploadActionBean" method="executeFileUploadDemo">
<interceptor-ref name="fileUpload">
<param name="maximumSize">10240</param>
<param name="allowedTypes">text/plain</param>
</interceptor-ref>
<interceptor-ref name="defaultStack" />
<result name="success">displayResultsJSP</result>
</action>
</package>
</struts>
applicationContext-web.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean id="ManagePlanDataFileUploadActionBean" scope="prototype"
class="com.hix.action.planmanagement.ManagePlanDataFileUploadAction">
</bean>
</beans>
管理上传动作
package com.hix.action.planmgmt;
import java.io.File;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.io.FileUtils;
import com.opensymphony.xwork2.ActionSupport;
public class ManagePlanUploadAction extends ActionSupport{
private HttpServletRequest request;
private File fileUpload;
private String fileUploadContentType;
private String fileUploadFileName;
public void setServletRequest(HttpServletRequest paramHttpServletRequest) {
this.request = paramHttpServletRequest;
}
public HttpServletRequest getServletRequest() {
return request;
}
public File getFileUpload() {
return fileUpload;
}
public void setFileUpload(File fileUpload) {
this.fileUpload = fileUpload;
}
public String getFileUploadContentType() {
return fileUploadContentType;
}
public void setFileUploadContentType(String fileUploadContentType) {
this.fileUploadContentType = fileUploadContentType;
}
public String getFileUploadFileName() {
return fileUploadFileName;
}
public void setFileUploadFileName(String fileUploadFileName) {
this.fileUploadFileName = fileUploadFileName;
}
public String executeFileUploadDemo() throws Exception {
try {
String filePath = "C:/Myuploads2";
System.out.println("Server path:" + filePath);
File fileToCreate = new File(filePath, fileUploadFileName);
FileUtils.copyFile(fileUpload, fileToCreate);
} catch(Exception e) {
e.printStackTrace();
addActionError(e.getMessage());
return SUCCESS;
}
System.out.println("File :" + fileUpload);
System.out.println("Filename : " + fileUploadFileName);
System.out.println("File type : " + fileUploadContentType);
return SUCCESS;
}
}
磁贴.xml
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
<tiles-definitions>
<definition name="displayResultsJSP" template="/jsp/planmgmt/Result.jsp">
<put-attribute name="header" value="/jsp/template/defaultHeader.jsp" />
<put-attribute name="footer" value="/jsp/template/defaultFooter.jsp" />
</definition>
</tiles-definitions>
Result.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<body>
File Name : <s:property value="fileUploadFileName"/>
<br/>
Content Type : <s:property value="fileUploadContentType"/>
<br/>
File : <s:property value="fileUpload"/>
</body>
</html>
我的问题现在解决了。我不得不将JAR(commons文件上传和commons io)不仅添加到我的类路径中,还添加到RAD的“部署程序集”。
我在strut中得到空指针异常。我只做了一个简单的Hello world示例。当我单击时显示此错误。这是我的代码 web.xml struts.xml 操作类别: 索引.jsp 它显示索引.jsp争辩当我点击你好它显示错误。 HelloWorld.jsp
问题内容: 我在登录模式提交按钮的单击侦听器中遇到问题。 这是错误。 我对什么是空指针异常有一个合理的了解,并且已经彻底搜索了一个类似于我的问题。我试图以几种方式重新格式化点击侦听器,确保我具有正确的视图ID等。 显然,还有更多但与我认为无关的话题。这是带有按钮的对话框的XML文件。 任何帮助将不胜感激。 问题答案: 是因为它不属于 当你调用内部的,它要寻找一个你的活动的布局中。 试试这个代替:
问题内容: 有可能这可能是一个双重问题。我将String变量初始化为null。我可能会或可能不会使用一个值更新它。现在我想检查此变量是否不等于null以及我尝试执行的操作是否会得到null指针异常。空指针异常,因为它代价高昂。是否有任何有效的解决方法.TIA 问题答案: 如果您使用 你 不会 得到。 我怀疑你在做什么: 这是因为null 而引发,而不是因为null。 如果仍然无法解释,请发布您用于
我已经更新了我的项目中的一些依赖关系之后,我的Hibernate配置类显示Nullpointerx的。 我将SpringDataJPA存储库与hibernate一起使用,已经超过24小时了,仍然没有找到任何关于小问题的适当解决方案。 我已经尝试过的一些解决方案:- 使用@bean(name=“entityManagerFactory”)提供bean名称 我面临的问题 波姆。xml文件 配置类 db
我正在eclipse中开发一个java项目。为了分发程序,我通过eclipse中的导出函数创建了一个可运行的.jar文件。 在我的程序中,加载存储在名为“tableImages”的文件夹中的多个图像。我通过类加载器加载图像(您将在下面找到代码片段)。问题如下:从.jar文件执行程序时,在加载上述文件夹中的.png文件之一时,它会抛出 NullPointerException。现在有趣的是,完全相同
我正在尝试上载一个csv文件到服务器。下面是我的HTML代码: 还有我的JS:- 我面临以下错误:- 加载资源失败:服务器响应的状态为500(HTTP/1.1 500) 可能未经处理的拒绝:{“data”:{“timestamp”:1510643953084,“status”:500,“error”:“内部服务器错误”,“exception”:“java.lang.NullPointerExcep