SpringMVC06以对象的方式获取前台的数据

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

/**
 * @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>

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

@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;
    }

}

  

时间: 2024-08-26 07:19:03

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

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

为什么要以对象的方式来访问xml数据表? 还记得,自己是在一次完成师兄布置的任务时接触到了xml,那时候需要用xml来作为数据文件,保存一个简单的图书管理系统的数据.于是就知道了,可以用xml文件来保存数据(而且比用简单的文本文件保存数据规范的多,在访问与读取数据上面都十分方便),就这样使用xml的征程开始了. 自己做的第一个WPF桌面应用程序——备忘录,就是用xml文件作为数据库.而且那个时候考虑到以后可能会经常使用到xml文件作为数据库,于是乎就写了一个专门用于访问xml文件的动态链接库,这

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

怎样以对象的方式来访问xml数据表? 在讲如何具体实现(二)中所说的专门用于访问xml文件的动态链接库之前,我们先来看看这个动态链接库具体要实现什么功能. 动态链接库IXmlDB.dll的功能: 1.对于不同的对象具有通用性.(简单地说就是在不修改内部代码的情况下,可以用不同的对象去映射不同的xml数据表) 由于数据保存在xml数据表里,所有数据都是以字符串的形式保存的,那么与之对应的对象里的属性就可以全部统一为string类型. 类与xml数据表映射的两个实例代码: User类与其对应xml数

hive 采用JDBC编码方式获取外部分区表数据

由于最近项目的需求,仔细研究了下采用hive JDBC编码的方式来实现命令行模式执行hql语句的功能.期间遇到了不少问题,并一一进行了分析解决.但是时间匆忙,本人并未能将遇到的问题逐一记录在案.凭借零零稀稀的记忆希望将这些问题和经验进行总结以备后用. 项目中有个需求就是实现通过hql条件查询语句查询出hive外部分区表中的数据,并将这些数据保存到本地文件中.直接贴出查询的主要类似代码如下: String driverName = "org.apache.hadoop.hive.jdbc.Hive

Ajax获取前台的数据

前台: function yz2() {       var username = $("#TextBox1").val();       $.ajax({           type: "POST",           url: "UserAdd.aspx?action=ajax",           data: "username=" + username,           success: function (

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

  先看一下我要实现的功能界面:   这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面中有所体现,这里不再赘述,此篇文章主要介绍:我是如何通过js从前台获取数据,然后通过ajax技术向后台一般处理程序传递JSON,后台又是如何获取传来的JSON,并对JSON数据转换,然后将转换后的数据写入数据库的! 介绍这些步骤实现前,先说说自己的辛酸:絮叨辛酸,是因为为了实现这个功能,我真的用了很

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

摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中  先看一下我要实现的功能界面:   这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面中有所体现,这里不再赘述,此篇文章主要介绍:我是如何通过js从前台获取数

java 27 - 2 反射之 反射的概述以及获取Class文件对象的方式

反射: JAVA语言的反射机制: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法: 对于任意一个对象,都能够调用它的任意一个方法和属性: 这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 如何解剖一个类: 要想解剖一个类,必须先要获取到该类的字节码文件对象. 而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象. 通俗的来说: 反射:就是通过class文件对象,去使用该文件中的成员变量,构造方法

通过不同方式获取接口(包括webService、Socket...)数据

最近一直在做接口程序的开发.发现因为每个公司的不同,他们会使用各种方式开放接口给我们使用它的数据,有HTTP.socket.存储过程.XFire... 不同的接口程序需要通过不同的方式获取他们放出来的数据. 1.HTTP(如何获取数据 ,以下是HTTP使用的过程和解析, ~~~ 主要看代码) 1. 创建HttpClient对象.    2. 创建请求方法的实例,并指定请求URL.如果需要发送GET请求,创建HttpGet对象:如果需要发送POST请求,创建HttpPost对象.    3. 如果

转: .NET MVC3 几种返回 JSON 对象的方式和注意事项

.NET MVC3 几种返回 JSON 对象的方式和注意事项 转自:http://blog.csdn.net/xxj_jing/article/details/7382589 引言在用 .NET MVC3 给我们做 WEB 项目带来很大灵活性同时,对刚上手的同学来说有些细微的设置导致的问题让我们相当的“纠结”! 这里要讨论的就是:使用JQuery的 Ajax 请求后“返回”的JSON 数据问题. 相信大多数同学都会遇到过,就是在后台已经拼接好了一(拼接方法比较多,我的博客也有提到过!)串标准的J