关于我使用spring mvc框架做文件上传时遇到的问题

题1:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.ClassCastException: org.apache.catalina.connector.RequestFacade  

 

程序刚一运行访问就抛出了上面的类型转换异常信息,根据提示信息,找到了导致该异常的代码行:

 

MultipartHttpServletRequest multipartRequest=(MultipartHttpServletRequest)request;

 

MultipartFile file=multipartRequest.getFile("upload");

 

这个问题花费了我很多时间和精力,查找了很多相关资料之后,发现我的配置文件里少了对multipart解析器的配置:

 

 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">            <property name="maxUploadSize" value="104857600"/>        

            <property name="maxInMemorySize" value="4096"/> 

</bean>

 

添加上之后,运行,访问,上面的异常终于没有再出现,但是新的问题又来了

 

问题2:

org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'multipartResolver' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory

这次的问题很明确,缺少文件包,添加commons-fileupload-1.2.jar,

 

问题解决,接着又出新问题

 

问题3:

org.springframework.web.util.NestedServletException: Handler processing failed; 

nested exception is java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream

添加commons-io-1.3.1,问题解决,至此,整个程序终于可以完整的运行,正常上传

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮您回答这个问题。首先,您需要配置好Spring MVC环境,然后在Controller层中编写处理请求的方法。下面是一个简单的计算器示例: 1. 定义请求处理方法: ```java @RequestMapping(value = "/calculate", method = RequestMethod.POST) @ResponseBody public String calculate(@RequestParam("num1") double num1, @RequestParam("num2") double num2, @RequestParam("operator") String operator) { double result = 0; switch (operator) { case "+": result = num1 + num2; break; case "-": result = num1 - num2; break; case "*": result = num1 * num2; break; case "/": result = num1 / num2; break; default: break; } return Double.toString(result); } ``` 2. 编写前端界面: ```html <form id="calculator_form"> <input type="number" name="num1"> <select name="operator"> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select> <input type="number" name="num2"> <button type="submit">Calculate</button> </form> <p id="result"></p> <script> $(document).ready(function () { $("#calculator_form").submit(function (event) { event.preventDefault(); $.post("/calculate", { num1: $("input[name=num1]").val(), num2: $("input[name=num2]").val(), operator: $("select[name=operator]").val() }, function (data) { $("#result").html(data); }); }); }); </script> ``` 这个例子展示了如何使用Spring MVC框架实现一个简单的计算器。需要注意的是,这只是一个示例,实际开发中还需要进行输入格式验证等操作以增强可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值