========创建需要的两个实体类================

/**
* @author 小豆腐
*/
public class Student { private String name;
private int age;
//学生的老师
private Teacher teacher; public Teacher getTeacher() {
return teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Student() {
super();
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
} }
public class Teacher {  //教师的实体类
private String name;
private int age; public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Teacher(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Teacher() {
super();
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}

=======需要的两个页面================

  <body>
<form action="student/addStudent" method="post">
学生姓名:<input type="text" name="name"/>
年龄: <input type="password" name="age"/>
<%-- teacher.name :teacher是 student类中的域属性 --%>
老师姓名:<input type="text" name="teacher.name"/>
<input type="submit" value="新增"/>
</form> </body>

springmvc.xml文件的内容

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!-- 配置springmvc的组件 -->
<context:component-scan base-package="cn.bdqn.controller"/> <!-- 视图解析器 后台返回的是 success! 应该拿到的是 /WEB-INF/jsp/success.jsp -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean> </beans>

controller中的内容

@Controller
@RequestMapping("/student")
public class StudentController { /**
* 新增student
* 01.通过request获取前台
* @return 视图 加上 数据
*/
@RequestMapping("/add")
public ModelAndView add(HttpServletRequest request,HttpServletResponse response){
//获取前台用户的输入
String name = request.getParameter("name");
String age = request.getParameter("age");
//创建一个MV
ModelAndView mv=new ModelAndView();
//增加数据 之后 前台使用 el表达式 接收
mv.addObject("name", name).addObject("age",age);
//设置返回页面
mv.setViewName("success");
return mv;
} /**
* 02.从请求中获取参数
* 注意点:
* 参数名称 必须和前台页面中的name属性值 一致!
*/
@RequestMapping("/add2")
public ModelAndView add2(String name,int age){
System.out.println("进入了add2...............");
//创建一个MV
ModelAndView mv=new ModelAndView();
//增加数据 之后 前台使用 el表达式 接收
mv.addObject("name", name).addObject("age",age);
//设置返回页面
mv.setViewName("success");
return mv;
} /**
* 校正参数
*student/add3?names=xxx&age=xxx
* @RequestParam("names")names:就是前台传递来的参数! 必须写在校正参数之前!
*/
@RequestMapping("/add3")
public ModelAndView add3(@RequestParam("names")String name,int age){
System.out.println("进入了add3...............");
//创建一个MV
ModelAndView mv=new ModelAndView();
//增加数据 之后 前台使用 el表达式 接收
mv.addObject("name", name).addObject("age",age);
//设置返回页面
mv.setViewName("success");
return mv;
} /**
* 对象整体的传递! 但是 需要注意的是!
* 前台页面中的name属性值要和对象的属性名 一致!
*/
@RequestMapping("/addStudent")
public ModelAndView addStudent(Student student){
System.out.println("进入了addStudent...............");
System.out.println("老师的姓名:"+student.getTeacher().getName());
//创建一个MV
ModelAndView mv=new ModelAndView();
//增加数据 之后 前台使用 el表达式 接收
mv.addObject("student",student);
//设置返回页面
mv.setViewName("success");
return mv;
} }

成功页面

  <body>
成功界面!
<br/>
用户名: ${name}<br/>
年龄: ${age}
<hr/>
学生的用户名:${student.name}<br/>
学生的年龄:${student.age}<br/>
老师的姓名:${student.teacher.name} </body>

================路径变量=====================

创建对应的页面

  <body>
<a href="user/2/张三/add">add</a>
</body>

index.jsp页面

  <body>
id========> ${id} <br>
name========> ${name} <br>
</body>

success.jsp页面

@Controller
@RequestMapping("/user")
public class MyController {
/**
* @PathVariable 这个注解使用来获取 路径变量的!
* 不同于之前的?参数
* 想获取路径变量 必须使用@PathVariable
*/
@RequestMapping(value = "/{id}/{name}/add")
public ModelAndView add(@PathVariable int id, @PathVariable String name) {
System.out.println("进入了 add.....");
System.out.println(name);
System.out.println(id); // 获取前台输入的值
ModelAndView mv = new ModelAndView();
mv.addObject("id", id).addObject("name", name);
mv.setViewName("/WEB-INF/jsp/success.jsp");
return mv;
} }

对应的controller

SpringMVC06以对象的方式获取前台的数据的更多相关文章

  1. Vue-Router路由Vue-CLI脚手架和模块化开发 之 使用props替代路由对象的方式获取参数

    在上一章博文中使用路由对象$route获取参数时,组件和路由对象耦合,在这篇博文中就可以使用props来进行解耦: 1.在组件中使用props选项定义数据,接收参数: 2.在路由中,使用props选项 ...

  2. 以对象的方式来访问xml数据表(三)

    怎样以对象的方式来访问xml数据表? 在讲如何具体实现(二)中所说的专门用于访问xml文件的动态链接库之前,我们先来看看这个动态链接库具体要实现什么功能. 动态链接库IXmlDB.dll的功能: 1. ...

  3. 以对象的方式来访问xml数据表(二)

    为什么要以对象的方式来访问xml数据表? 还记得,自己是在一次完成师兄布置的任务时接触到了xml,那时候需要用xml来作为数据文件,保存一个简单的图书管理系统的数据.于是就知道了,可以用xml文件来保 ...

  4. 以对象的方式来访问xml数据表(一)

    所有实例代码都是以C#演示—— 在将如何以对象的方式来访问xml数据表之前,我们先来谈谈如何用xml文件作为数据库吧! 平时在开发一些小的应用的时候,需要一个数据库,这个时候虽然可以用SQL serv ...

  5. SpringMvc用什么对象从后台向前台传递数据的?

    通过ModelMap对象,可以在这个对象里面调用put方法,把对象加到里面,前台就可以通过el表达式拿到.

  6. json数据转为对象,一般在前台把数据传回后端中使用 转https://www.cnblogs.com/zxtceq/p/6610214.html

    public static JArray GetData2JArray(string url, string key) { string jsonData = HttpHelper.HttpGet(u ...

  7. 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

      先看一下我要实现的功能界面:   这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...

  8. 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

    摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...

  9. Android简易实战教程--第四十七话《使用OKhttp回调方式获取网络信息》

    在之前的小案例中写过一篇使用HttpUrlConnection获取网络数据的例子.在OKhttp盛行的时代,当然要学会怎么使用它,本篇就对其基本使用做一个介绍,然后再使用它的接口回调的方式获取相同的数 ...

随机推荐

  1. 【USACO 2.1.4】荷斯坦奶牛

    [题目描述] 纪念“逝去”的Wecing 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数 ...

  2. php中session的运行机制

    在PHP中session默认是以文件的形式存储于服务器的 而客户端和服务端则是通过session_id来完成握手的,默认情况下PHP会将session_id存储于cookie中,用户每次请求时该ses ...

  3. GitHub-修改以下host-ip可加快访问速度

    #GitHub START 207.97.227.239    github.com 204.232.175.94    gist.github.com 107.21.116.220    help. ...

  4. jquery实现页面置顶功能代码

    <html> <head> <title></title><script type='text/javascript> //回到顶部功能 f ...

  5. js变量声明与赋值以及函数声明

    if (!("a" in window)) { var a = 1; } alert(a); 结果:undefined 分析: 首先,所有的全局变量都是window的属性,语句 v ...

  6. CSU 1337(费马大定理)

      CSU 1337 Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu   Descrip ...

  7. 查看 yum 安装软件包的路径

    yum:列出已安装的安装包 [root@localhost ~]# yum list | grep mysql akonadi-mysql.x86_64 1.9.2-4.el7 base apr-ut ...

  8. Substrings

    hdu1238:http://acm.hdu.edu.cn/showproblem.php?pid=1238 题意:给你n个串,求一个子串,这个子串在所有串中都出现,或者在逆串中出现.求最大的这个子串 ...

  9. poj 2777Count Color

    http://poj.org/problem?id=2777 注意:a可能比b大 #include <cstdio> #include <cstring> #include & ...

  10. 《how to design programs》13章用list构造表

    使用cons构造一个包含多个元素的表十分麻烦,因此scheme提供了list操作,该操作接受任意量的值作为输入以创建一个表,下面是扩展的语法: <prm>=list 扩展的scheme值的 ...