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

/**
* @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. Get URL parameters & values with jQuery

    原文: http://jquery-howto.blogspot.jp/2009/09/get-url-parameters-values-with-jquery.html In this post, ...

  2. (转载)div最小宽度和自适应的实现方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. javascript禁止输入数字

    function onkeypressIsNumber(){ var mainForm = document.mainForm;//mainForm是form表单的ID for(var i=0; i& ...

  4. 如何用angularjs制作一个完整的表格之四__自定义ng-model标签的属性使其支持input之外的html元素

    有的时候我们需要为非input类型的元素添加ng-model来实现双向的数据绑定,从而减少冗余代码,那么可以尝试一下的方式 例如:我页面中使用了contenteditable这个属性来实现用户可直接编 ...

  5. 【行为型】Visitor模式

    访问者模式意图在不改变目标对象类结构的情况下,扩展对象类的行为.新扩展的行为均被封装成类对象的形式来动作.应用该模式时,往往目标类系与Visitor类系是两个不同的类系,它们配合工作但维护是分开的,互 ...

  6. 一个用python实现的东方时尚(驾校)抢课程序

    2014-12-23 东方时尚约车还要网上选课,资源太紧张了,于是我决定自己写一个抢票程序来帮我刷票. 第一步,抓包.浏览器登陆选课系统,用抓包工具观察网络行为,这里我用的fildder.这里抓包主要 ...

  7. NET Core 数据保护2

    ASP.NET Core 数据保护(Data Protection 集群场景)[下]   前言 接[中篇],在有一些场景下,我们需要对 ASP.NET Core 的加密方法进行扩展,来适应我们的需求, ...

  8. 转:assert()函数用法总结

    assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include <assert.h>void assert( in ...

  9. [工具]sublime text2-前端开发利器

    之前在知乎上搜索好用的前端开发工具,投票最多的是webStrom,试用过后发现果真好用,代码补全,代码检查,支持主流的版本控制,比如git,svn等等.但是毕竟是一款集成的IDE,启动速度慢.吃内存是 ...

  10. BZOJ2324: [ZJOI2011]营救皮卡丘

    2324: [ZJOI2011]营救皮卡丘 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1359  Solved: 522[Submit][Stat ...