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

/**
* @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. JavaScript-学习一获取表单的值

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>he ...

  2. 纯js制作遮罩层对话框 -- g皓皓

    //本文支持js在线工具测试.转载请注明出处. <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> < ...

  3. javascript权威指南学习笔记3

    今天看到第四章,记录一下其中的几个点,俗话说:好记性不如烂笔头嘛. 4.9   in运算符和instanceof运算符 in运算符希望它的左操作数是一个字符串或可以转化为字符串,希望它的右操作数是一个 ...

  4. document.all和jq trigger原理

    document.all是页面内所有元素的一个集合.如:       document.all(0)表示页面内第一个元素document.all可以判断浏览器是否是IE     if(document ...

  5. 字符串截取slice() substring() substr()的区别?

    获取子字符串 slice()        substr()    substring() 不会修改字符串本身,他们只是返回一个基本类型的字符串值 var str='abcdefghijklmn'; ...

  6. scrapy1.1入门用例简介

    今天将scrapy安装成功,测试了下,倒腾了好长时间,才倒腾成功,特此分享. 其实最好的老师就是scrapy的帮助文档,只要把文档看懂,照着做,也就啥都会儿了! 帮助文档下载见http://downl ...

  7. python模块之json序列化

    31.序列化:      1.json实现序列化,json.dumps()和json.loads().           >>> s1 = {'k1':'v1','k2':'v2' ...

  8. Python按行读取文件

    1:readline() file = open("sample.txt") while 1: line = file.readline() if not line: break ...

  9. Java多线程中易混淆的概念

    概述 最近在看<ThinKing In Java>,看到多线程章节时觉得有一些概念比较容易混淆有必要总结一下,虽然都不是新的东西,不过还是蛮重要,很基本的,在开发或阅读源码中经常会遇到,在 ...

  10. Logger之Logger.getLogger(CLass)

    之前一直在使用System.out.println()来调试.但是用这种方式开发项目部署到生产环境,会因为众多的控制台输出降低应用的性能.这时候Log4J就成为可平衡开发和部署应用的利器了. 在项目中 ...