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

/**
* @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. 【COGS495】窗口

    [问题描述] 给你一个长度为N的数组,一个长为K的滑动的窗体从最左移至最右端,你只能见到窗口的K个数,每次窗体向右移动一位,如下表: Window position Min value Max val ...

  2. 表单数据校检方法 onsubmit()的使用?

    在项目中为一个表单(from)编写onsubmit()脚本的时候,经常需要验证表单中数据的合法性 所以常会写道:<form action="/admin/addUser.do" ...

  3. jquery.cookie()方法

    jquery.cookie.js是一个轻量级的cookie 插件,可以读取.写入.删除 cookie. 首先包含jQuery的库文件,在后面包含 jquery.cookie.js 的库文件. < ...

  4. DNS解析原理

    1.在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析. 2.如果hosts里没有这个域名的映射,则 ...

  5. Serilog with Autofac

    http://serilog.net/  ---不错的日志工具 1.直接绑定 builder.Register<ILogger>((c, p) => { return new Log ...

  6. Xcode7调试-b

    Xcode7中苹果为我们增加了两个重要的debug相关功能.了解之后觉得非常实用,介绍给大家. 1.Address Sanitizer: 妈妈再也不用担心 EXC_BAD_ACCESS? EXC_BA ...

  7. GitHub NetFlow

    https://github.com/search?l=Java&p=1&q=netflow&ref=searchresults&type=Repositories&a ...

  8. 输入一个单向链表,输出该链表中倒数第K个结点

    输入一个单向链表,输出该链表中倒数第K个结点,具体实现如下: #include <iostream> using namespace std; struct LinkNode { publ ...

  9. DataGridView DataGridViewCheckBoxColumn编辑时实时触发事件

    正常响应CellValueChanged()事件时,当改变checkbox状态时,只有当焦点离开该单元格时才能触发CellValueChanged()事件, 如果要改变checkbox值时实时触发Ce ...

  10. 用SQL替换最后一个指定字符后面的所有字符

    下面给出任意字符串,该字符串长度未定,只知道该字符串有许多个‘-’连接起来的,现在要把最后一个‘-’后面的字符替换掉为指定串. 假如字符串为:'x1253-axebx-xcdx-o9kgl-3ddll ...