SpringMVC参数传递:把内容写到方法(HandlerMethod)参数中,SpringMVC只要有这个内容,则会注入,在这里使用注解的方式来传递参数

前提使用springmvc注解功能,相应配置请看上节JavaWeb学习之路——SSM框架之SpringMVC(七)

1.在jsp文件中设置提交动作

<form action="demo" method="post"><input type="text" name="name"/><input type="text" name="age"/><input type="submit" value="提交"/></form>

2.解决字符编码问题。

在web.xml中来新增字符编码过滤器

 <!-- 字符过滤器 --><filter><filter-name>encoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param></filter><!-- 拦截器 ,将所有根目录下网页过滤为utf-8类型字符编码--><filter-mapping><filter-name>encoding</filter-name><url-pattern>/*</url-pattern></filter-mapping>

3.在相应的spring控制器中执行相应动作名的适配器方法来响应

可以传递基本数据类型、对象、集合等,传递对象时要与类中参数名相对应。

(1)默认情况下参数名一样即可保证参数传递一致

package com.likui.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.filter.CharacterEncodingFilter;@Controllerpublic class DemoController {@RequestMapping("demo")public String demo(String name,int age,HttpServletRequest res,HttpSession session) {System.out.println("demo"+name+" "+age);res.setAttribute("test", "test");return "main.jsp";}}

(2)对于参数名不同的情况:

只需要在Maping对应的方法中填写注解RequestParam的value值即可。下面的name值为index.jsp中对应为name2属性值

@RequestMapping("demo")public String demo(@RequestParam(value="name2") String name,int age,HttpServletRequest res,HttpSession session) {System.out.println("demo"+name+" "+age);res.setAttribute("test", "test");return "main.jsp";}

(3)默认值采取注解

  @RequestParam(defaultValue="18")  

(4)必须要填写值

@RequestParam(required=true,defaultValue="18")  

4.jsp文件设置提交跳转

index.jsp文件动作为demo

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body>hello springmvc!<form action="demo" method="post"><input type="text" name="name"/><input type="text" name="age"/><input type="submit" value="提交"/></form></body></html>

main.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body>hello main!${test }</body></html>

5.执行结果

在index.jsp中输入结果后点击提交,会交给控制器中demo适配器来解决,在这里面传递参数并返回到视图main.jsp

JavaWeb学习之路——SSM框架之SpringMVC(八)相关推荐

  1. JavaWeb学习之路——SSM框架之SpringMVC(七)

    Spring MVC: 简介:SpringMVC是一种基于Java,实现了Web MVC设计模式,请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦.基于请求驱动指的 ...

  2. JavaWeb学习之路——SSM框架之SpringMVC(九)

    SpringMVC跳转.视图解析器和@ResponseBody的用法 1.跳转方式 (1)默认方式字符串内容来转发 (2)设置返回值内容转发 添加redirect:资源路径·  重定向 添加forwa ...

  3. JavaWeb学习之路——SSM框架之Spring(五)

    前情提要请看JavaWeb学习之路--SSM框架之Spring(四)                                         整合Spring和Mybatis框架 1.在项目的 ...

  4. JavaWeb学习之路——SSM框架之Mybatis(三)

    数据库配置和相关类创建看上篇:JavaWeb学习之路--SSM框架之Mybatis(二) https://blog.csdn.net/kuishao1314aa/article/details/832 ...

  5. JavaWeb学习之路——SSM框架之Spring(四)

    SSM框架学习-Spring01 1,.Spring介绍 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同 ...

  6. JavaWeb学习之路——SSM框架之Mybatis(二)

    1.简介: 框架: 是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架.前者是从应用方面而后者是从目的方面给出的定义.它是一个半 ...

  7. JavaWeb学习之路——SSM框架之Spring(六)

    AOP:面向切面编程 1.介绍--AOP:面向切面编程.正常程序都是从上到下执行相关代码,aop是在纵向执行流程中添加横切面, 从左到右的关系.不需要修改成语原有代码,它将代码动态的切入到类的指定方法 ...

  8. SSM框架:SpringMVC

    SSM框架:SpringMVC 文章目录 前言 一.回顾 1. 学习方法说明 2. 回顾MVC架构 1.什么是MVC 2.MVC的结构分析 3.Model1时代 4.Model2时代 3. 回顾Ser ...

  9. SSM框架(spring+springmvc+mybatis)+Mysql实现的社区物业管理系统(功能包含分角色,报修管理、抄表管理、车位管理、房屋管理、业主管理、投诉管理、报修统计分析等)

    博客目录 SSM框架(spring+springmvc+mybatis)+Mysql实现的社区物业管理系统 实现功能截图 系统功能 使用技术 代码 完整源码 SSM框架(spring+springmv ...

最新文章

  1. 目标定位--Deep Self-Taught Learning for Weakly Supervised Object Localization
  2. 人工智能——面向对象表示法
  3. 嵩天python笔记_第一篇python笔记
  4. VC6命令行编译工程方法
  5. C++ Priority Queues(优先队列)
  6. atitit.java给属性赋值方法总结and BeanUtils 1.6.1 .copyProperty的bug
  7. 办公软件自学教程有哪些
  8. 海康linux 密码忘记,linux下调用海康sdk
  9. python pyhook监听扫码_Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
  10. 二进制计算机课教案,《二进制与计算机》教学设计
  11. python投票问题,程序列出在python中获得多数投票的候选人
  12. 浏览器使用flash时出现此Flash Player 与您所在地区不相容的提示解决方法
  13. webSocket实现聊天室功能
  14. 基于STM32的0.96寸OLED显示屏显示数据
  15. 带你初步了解基因表达调控
  16. 【WPS】未安装VBA支持库,无法运行文档中的宏。如需要启用宏功能,请点击这里了解详情。
  17. 浅谈Appium之AppUI自动化
  18. Scrapy爬虫爬取电影天堂
  19. IBM MQ常用的命令
  20. [笔记的明子] - C语言笔记

热门文章

  1. 点击按钮测试用例标题_功能测试有哪些用例?分享功能测试用例大全
  2. mysql手注_php+mysql手注拿shell教程【朋友给的】
  3. linux centos 回收站,centos rm 回收站
  4. mysql 获取倒数第二_如何从MySQL中的表中获取倒数第二条记录?
  5. addroutes刷新_vue解决addRoutes多次添加路由重复的操作方法
  6. java normalize_java – XPath normalize-space()返回一系列规范化字符串
  7. python在线翻译脚本_python写一个翻译的小脚本
  8. 北京内推 | 京东AI研究院计算机视觉实验室招聘三维视觉算法研究型实习生
  9. “人工智能创新大讲堂”全日程发布 | 听大咖畅谈智能社会
  10. CMU提出「十字绣网络」,自动决定多任务学习的最佳共享层