美文网首页
SpringMVC 作用域传值的几种方式

SpringMVC 作用域传值的几种方式

作者: 路上捡只猫 | 来源:发表于2018-11-21 15:19 被阅读0次
  1. 使用原生 Servlet
    1.1 在 HanlderMethod 参数中添加作用域对象
@RequestMapping("demo1")
public String demo1(HttpServletRequest abc,HttpSession sessionParam){
//request 作用域
abc.setAttribute("req", "req 的值");
//session 作用域
HttpSession session = abc.getSession(); session.setAttribute("session", "session 的值"); sessionParam.setAttribute("sessionParam",
"sessionParam 的值"); //appliaction 作用域
     ServletContext application =
abc.getServletContext();
     application.setAttribute("application","application 的值"); return "/index.jsp";
}
  1. 使用Map集合
    2.1 把 map 中内容放在 request 作用域中
    2.2 spring 会对 map 集合通过 BindingAwareModelMap 进行实例 化
@RequestMapping("demo2")
public String demo2(Map<String,Object> map){
System.out.println(map.getClass()); map.put("map","map 的值");
return "/index.jsp";
}
  1. 使用 SpringMVC 中 Model 接口
    3.1 把内容最终放入到 request 作用域中.
@RequestMapping("demo3")
public String demo3(Model model){
model.addAttribute("model", "model 的值");
return "/index.jsp"; 
}

4.使用 SpringMVC 中 ModelAndView 类

@RequestMapping("demo4")
public demo4(){
//参数,跳转视图
ModelAndView mav = new ModelAndView("/index.jsp");
 mav.addObject("mav", "mav 的值");
return mav;
}

文件上传

  1. 基于 apache 的 commons-fileupload.jar 完成文件上传.
  2. MultipartResovler作用:
    2.1 把客户端上传的文件流转换成 MutipartFile 封装类.
    2.2 通过 MutipartFile 封装类获取到文件流
  3. 表单数据类型分类
    3.1 在<form>的 enctype 属性控制表单类型
    3.2 默认值 application/x-www-form-urlencoded,普通表单数据.(少 量文字信息)
    3.3 text/plain 大文字量时使用的类型.邮件,论文
    3.4 multipart/form-data 表单中包含二进制文件内容.
  4. 实现步骤:
    4.1 导入 springmvc 包和 apache 文件上传 commons-fileupload 和 commons-io 两个 jar
    4.2 编写 JSP 页面
<from   action="upload" enctype="multipart/form-data" method="post">
姓名:<input type="text" name="name"/><br/> 
文件:<input type="file" name="file"/><br/> 
<input type="submit" value="提交"/>
</form>

4.3 配置 springmvc.xml

<!-- MultipartResovler 解析器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.Comm onsMultipartResolver">
<property name="maxUploadSize" value="50"></property>
</bean>
<!-- 异常解析器 -->
<bean id="exceptionResolver"
class="org.springframework.web.servlet.handler.Simple MappingExceptionResolver">
<property name="exceptionMappings"> <props>
<prop key="org.springframework.web.multipart.MaxUploadSizeE xceededException">/error.jsp</prop>
        </props>
     </property>
</bean>

4.4 编写控制器类
4.4.1 MultipartFile 对象名必须和<input type=”file”/>的 name 属性值相同

@RequestMapping("upload")
public String upload(MultipartFile file,String name) throws IOException{
String fileName = file.getOriginalFilename();
     String suffix =
fileName.substring(fileName.lastIndexOf("."));
//判断上传文件类型 if(suffix.equalsIgnoreCase(".png")){
String uuid = UUID.randomUUID().toString();
FileUtils.copyInputStreamToFile(file.getInputStream (), new File("E:/"+uuid+suffix));
return "/index.jsp"; 
  }else{
return "error.jsp"; 
}
}

相关文章

  • SpringMVC 作用域传值的几种方式

    使用原生 Servlet1.1 在 HanlderMethod 参数中添加作用域对象 使用Map集合2.1 把 m...

  • 几种iOS界面之间的传值方式

    几种iOS界面之间的传值方式 一.正向传值方式 (BOOL)application:(UIApplication ...

  • Net面试net篇

    1.Asp.net页面传值的几种方式 QueryString传值,session 传值 ,使用sever.Tran...

  • JS随手笔记

    传值与传地址 严格模式 **use strict ** 只对当前作用域及子作用域有效严格模式下使用的变量必须定义 ...

  • 组件传值&数据请求

    每个组件 的作用域都是独立的, 有时候需要在组件之间完成数据的传递,需要通过组件传值的方式来实现 组件传值可以分为...

  • iOS传值方式

    在iOS中,常见的传值方式有以下几种:1.属性传值2.单例传值3.通知传值4.代理传值5.Block这些传值方式,...

  • iOS 常用传值方式

    总结 iOS 日常开发中的几种常用传值方式:正向传值代理传值block传值通知传值单例 文章代码:https://...

  • OC与swift的数据传输

    简介 该项目主要介绍了oc与swift之间、swift内部几种常见的传值方式(属性传值、代码块传值、代理传值、通知...

  • 几种传值方式

    1. 属性传值 通常用于正向传值,适用于A和B相互具有一定关联性。不能用于隔页面传值。而且,需要传值的属性不能是...

  • iOS传值的几种常用方式

    iOS常用的传值方式有以下几种: 属性传值、单例传值、代理传值、block传值、通知传值 接下来我就分别讲述一下这...

网友评论

      本文标题:SpringMVC 作用域传值的几种方式

      本文链接:https://www.haomeiwen.com/subject/ailcqqtx.html