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 这个注解使用来获取 路径变量的! 
* 不同于之前的?参数 
* 想获取路径变量 [email protected]   
*/ 
@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; 
} 
} 

  

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/12164.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论