当前位置: 首页 > 知识库问答 >
问题:

struts 2文件上传:没有这样的方法异常

湛嘉歆
2023-03-14

我试图使用struts2上传文件,但没有成功。我一直在关注Struts2Showcase指南,并浏览了许多论坛。

这是我的JSP

<form action="uploadFile" method="post" enctype="multiform/form-data">
        <div class="overlay">
            <div class="modal">
                <div class="content">
                    <div class="headerText">Upload File</div>

                    <div class="fileuploadwindow">
                         <s:file id="upload" name="upload" label="File"/>
                    </div>

                    <div class="footerText" align="right">


                        <input type="button" class="aButton" value="Close"
                            onclick="closeCreate()"> <s:submit
                            class="aButton" value="Upload"/>
                    </div>
                </div>
            </div>
        </div>
    </form>

这是我的动作课

private File upload;

private String uploadFileName;

private String uploadContentType;

@Override
public String execute() throws Exception {
    LOGGER.error("uploaded file : "+upload);
    LOGGER.error("File name : "+uploadFileName);
    LOGGER.error("content type : "+uploadContentType);
    return super.execute();
}

@Override
public String input() throws Exception {
    // TODO Auto-generated method stub
    return super.input();
}

public String upload() throws Exception {
    return SUCCESS;
}

public File getUpload() {
    return upload;
}

public void setUpload(File upload) {
    this.upload = upload;
}

public String getUploadFileName() {
    return uploadFileName;
}

public void setUploadFileName(String uploadFileName) {
    this.uploadFileName = uploadFileName;
}

public String getUploadContentType() {
    return uploadContentType;
}

public void setUploadContentType(String uploadContentType) {
    this.uploadContentType = uploadContentType;
}

当我试图上传文件时,我得到异常

Error setting expression 'upload' with value '[Ljava.lang.String;@66fc92f'ognl.MethodFailedException: Method "setUpload" failed for object org.verientouch.opendrive.actions.UploadFileAction@61a8a328 [java.lang.NoSuchMethodException: org.verientouch.opendrive.actions.UploadFileAction.setUpload([Ljava.lang.String;)]

我还经历了Struts 2文件上传空指针异常和struts2-cant-上传-文件-无效-字段值。但仍然没有成功

请建议一下,我哪里出了问题

共有1个答案

通博实
2023-03-14

在JSP中,您应该使用

<form action="uploadFile" method="post" enctype="multipart/form-data">

因为您的编码类型错误。

 类似资料:
  • 主要内容:创建视图文件:,创建action类:,配置文件:,错误消息:Struts 2框架提供了内置支持处理文件上传使用基于HTML表单的文件上传。上传一个文件时,它通常会被存储在一个临时目录中,他们应该由Action类进行处理或移动到一个永久的目录,以确保数据不丢失。 请注意,服务器有一个安全策略可能会禁止写到目录以外的临时目录和属于web应用的目录。 在Struts中的文件上传是通过预先定义的拦截文件上传拦截器这是可通过org.apache.struts2.in

  • 问题内容: 问题描述:我想使用JSP创建文件上传屏幕。屏幕将允许用户在屏幕上选择多个文件,但所有文件只有一个“上传”按钮。单击上载按钮后,应在Action类中获取所有文件对象。 但是重要的是页面提交后不应刷新。在同一屏幕上还会显示其他信息,在文件上传过程中不应更改这些信息。 我的尝试:我使用了简单的struts2文件上传功能,效果很好。但是它正在刷新提交页面。我使用AJAX(JQuery)来解决此

  • 问题内容: 我在Jenkins管道中使用JSON函数并获取。我正在使用Jenkins 2.85。 任何想法如何解决这个问题? 问题答案: 使用管道实用程序步骤插件可以使用该功能。 没有此插件,您将无法使用此功能。 有关更多信息,请检查:步骤

  • 问题内容: 所以这是我的代码: 由于某种原因,我收到了No Such Element Exception 我不确定为什么。基本上我的程序正在搜索两个文本文件-armour.txt和TreasureClassEx.txt。getTreasureClass从怪物那里获得一个宝藏类,并在txt中搜索,直到到达基础装甲项目(不以tc:开头的字符串。)然后,它在getArmor中搜索与所获得的基础装甲名称相

  • 当我想登录或注册时,我为registration AdvUser添加了用户类,或者当我收到错误时,我为createsuperuser添加了用户类: 异常值:没有这样的表:vacancy_list_advuser 文件“/home/alex/dev/python/django/junjob/myvenv/lib/python3.5/site packages/django/db/backends/s

  • 主要内容:1. 动作类,2. 结果页面,3. struts.xml,4. 示例,参考在Struts2, <s:file> 标签用于创建一个HTML文件上传组件,允许用户从本地磁盘选择文件,并将其上传到服务器。在本教程中,您将创建与文件上传组件JSP页面,设置最大大小和允许上传文件的内容类型,并显示上传文件的详细信息。 这里创建一个Web工程:strut2uploadfile,来演示在多个复选框如何设置的默认值,整个项目的结构如下图所示: 1. 动作类 Action类的文件上传,声