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

/**
* @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. 深入浅出理解QTimeLine类

    网上找了下QTimeLIne类的介绍,要么就是代码一贴自己看去,要么就是说不到重点,正巧自己项目遇到这个类,在这里写一下,给需要的同学看下. 因为我最近需要有动画方面配合时间间隔触发QGraphics ...

  2. JS笔记2 --定义对象

    16.javascript中定义对象的几种方式(javascript中没有类的概念,只有对象): 1)基于已有对象扩充其属性和方法: var object = new Object(); object ...

  3. 关于 从别人电脑上 高版本的 Xcode上拷贝过来的项目的 不能运行模拟器的 解决方法

    如图 从别人电脑上 拷贝过来的  工程  打开后  点击 iOS  Device  只有  一个选项  没有模拟器.这说明 自己的 Xcode 的版本比 创建这个工程所用的版本低.所以 要睇啊你tar ...

  4. Spring Test 整合 JUnit 4 使用

    这两天做Web开发,发现通过spring进行对象管理之后,做测试变得复杂了.因为所有的Bean都需要在applicationContext.xml中加载好,之后再通过@Resource去取得.如果每次 ...

  5. hdu 4545 魔法串

    http://acm.hdu.edu.cn/showproblem.php?pid=4545 #include <cstdio> #include <cstring> #inc ...

  6. 游标、获取本地本地多个文件、Excel数据导入、跨服务器数据拷贝、行转列示例

    )='C:\Users\Administrator\Desktop\待处理数据\顺江学校4\' ---------------------------------------------------- ...

  7. h.264 率失真优化

    Rate Distortion Optimization 搜索时,一个不可避免的问题就是如何对mv进行比较,从而得到最优 对于同一压缩算法来说,码率越高表示图像质量越好.失真越小,但是码率越高要求更大 ...

  8. 【Linux】鸟哥的Linux私房菜基础学习篇整理(十二)

    1. depmod [-Ane]:更新内核模块依赖.参数:无参数:depmod会主动分析目前内核的模块,并重新写入/lib/modules/$(uname -r)/modules.dep中:-A:de ...

  9. 【转】两分钟彻底让你明白Android Activity生命周期(图文)!----不错

    原文网址:http://blog.csdn.net/android_tutor/article/details/5772285 大家好,今天给大家详解一下Android中Activity的生命周期,我 ...

  10. 开放计算平台——数据仓库(Hive)权限控制

    平台数据仓库使用Hive进行构建,通过调研决定使用“SQL Standards Based Authorization in HiveServer2”对用户提交的SQL进行权限控制,也可根据实际情况选 ...