SpringMVC 后台怎么获取前台jsp页面中file中的文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC 后台怎么获取前台jsp页面中file中的文件相关的知识,希望对你有一定的参考价值。

参考技术A SpringMVC默认是关闭fileupload功能的,开启该能够并验证文件上传,需要做如下几件事情:
第一:打开SpringMVC的文件上传功能:
***-servlet.xml中配置:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="100000"/>
<property name="maxInMemorySize" value="10240" />
</bean>

配置后,当SpringMVC接受到multipartRequest的时候,就会把HttpServletRequest转为MultipartHttpServletRequest类型,
第二步:创建上传文件的file.jsp:
<form action="dynamicFields.action?method=uploadFile" method="post" enctype="multipart/form-data"><input type="file" name="myfile" id="myfile" value="" /><br/><input type="submit" value="确认提交"></form>

一定不要漏掉enctype="multipart/form-data",否则web容器认为这不是一个MultipartRequest请求,会报错org.springframework.web.multipart.MultipartException: The current request is not a multipart request。
第三步:Controller层创建代码:
@RequestMapping(params = "method=uploadFile")
public ModelAndView uploadFile(@RequestParam("myfile") MultipartFile myfile,
HttpServletRequest request, HttpServletResponse response) throws Exception
if(!myfile.isEmpty())
logger.info(myfile.getName());
byte[] bs= myfile.getBytes() ;
logger.info(new String(bs));

return null;


部署web应用运行后,能够看到控制台中打印出上传文件的内容,BINGO搞定(SpringMVC依赖common-fileupload.jar,需要加载该jar包)

在springMVC中的Controller层中怎么获取页面中的input中用户输入的值?

参考技术A

在springMVC中的Controller层中获取页面中的input中用户输入的值的方法:

后台在采集jsp页面表单里面的数据时没有用到传统的request.getParameter(),而是在controller的传入参数多了几个对象。

    import java.util.Map;  

    import javax.servlet.http.HttpServletRequest;  

    import javax.servlet.http.HttpServletResponse;  

    import org.springframework.stereotype.Controller;  

    import org.springframework.web.bind.annotation.RequestMapping;  

    import org.springframework.web.servlet.ModelAndView;  

    import com.zyl.nonglin.base.BaseController;  

    import com.zyl.nonglin.base.entity.Vacate;  

    @Controller  

    @RequestMapping(value="/admin/qingjia")  

    public class VacateController extends BaseController  

    /** 

    * 跳转到请假页面 

    * @param req 

    * @param resp 

    * @return 

    */  

    @RequestMapping(value="/toVacate")  

    public ModelAndView toVacate(HttpServletRequest req,HttpServletResponse resp)  

    Map<String,Object> context = getRootMap();  

    return forword("/qingjia/vacate", context);  

      

    /** 

    * 提交请假信息 

    * @param vacate 

    * @param req 

    * @param resp 

    */  

    @RequestMapping(value="/addVacate")  

    public void addVacate(Vacate vacate,HttpServletRequest req,HttpServletResponse resp)  

    System.out.println(vacate.getClassNum());//  

    System.out.println(vacate.getReason());  

    System.out.println(vacate.getsName());  

    System.out.println(vacate.getsNum());  

    System.out.println(vacate.getsPhone());  

      

     

Spring MVC:

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts2等。

以上是关于SpringMVC 后台怎么获取前台jsp页面中file中的文件的主要内容,如果未能解决你的问题,请参考以下文章

java web后台向前台传值的有几种方法?

SpringMVC中,前台jsp封装参数,绑定参数,传递参数到后台controller的过程详解123

springmvc ajax 页面无法重定向问题!!!!

jsp页面前台用jdbc如何获取sql数据库里的数据。

SPRINGMVC,JSP页面接收到后台传过来的list<Student>类型的数据,如何将其遍历并赋值

jsp中js里怎么接收后台传来的值