使用POJO作为参数

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><display-name></display-name>    <!-- 配置org.springframework.web.filer.HiddenHttpMethodFilter:可以把POST请求转为DELETE或POST请求--><filter><filter-name>HiddenHttpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class></filter><filter-mapping><filter-name>HiddenHttpMethodFilter</filter-name><!-- 过滤所有请求 --><url-pattern>/*</url-pattern></filter-mapping><!-- 配置DispatcherServlet --><servlet><servlet-name>springDispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置 DispatcherServlet的一个初始化参数:配置SpringMvc 配置文件的位置和名称--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param><!-- 也可以不通过contextConfigLocation 来配置SpringMvc的配置文件,而使用默认的默认的配置文件为:/WEB-INF/<servlet-name>-servlet.xml/WEB-INF/springDispatcherServlet-servlet.xml--><!-- 设置启动 --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><!-- 请求处理 --><servlet-name>springDispatcherServlet</servlet-name><!-- /:应答所有请求 --><url-pattern>/</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
</web-app>

springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="
 http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
     http://www.springframework.org/schema/mvc
 http://www.springframework.org/schema/tx/spring-mvc-4.0.xsd
 http://www.springframework.org/schema/context
 http://www.springframework.org/schema/context/spring-context-4.0.xsd
 http://www.springframework.org/schema/aop
 http://www.springframework.org/schema/aop/spring-aop-4.0.xsd"><!-- 配置自定义扫描包 --><context:component-scan base-package="como.springmvc.handlers"></context:component-scan><!-- 配置视图解析器:如何把handler方法返回值解析为实际的物理视图 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 前缀 --><property name="prefix" value="/WEB-INF/views/"></property><!-- 后缀 --><property name="suffix" value=".jsp"></property></bean></beans>

实体类代码:

User.java

package com.springmvc.entity;public class User {private String username;private String password;private String email;private int age;private Address address;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Address getAddress() {return address;}public void setAddress(Address address) {this.address = address;}@Overridepublic String toString() {return "User [username=" + username + ", password="+ password + ", email=" + email + ", age=" + age+ ", address=" + address + "]";}}

Address.java

package com.springmvc.entity;public class Address {private String province;private String city;public String getProvince() {return province;}public void setProvince(String province) {this.province = province;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}@Overridepublic String toString() {return "Address [province=" + province + ", city=" + city + "]";}}

Pojo.java

package como.springmvc.handlers;

import java.io.IOException;import java.io.Writer;

import javax.servlet.http.*;

import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;

import com.springmvc.entity.User;

@Controller@RequestMapping("/Pojo")public class Pojo {

    /*     * SpringMVC会按请求参数名和POJO属性名进行自动匹配     * 自动为该对象填充属性,支持级联属性     * 如:dept.deptId、dept.address.tel

     * */

    @RequestMapping("/testPojo")            public String testPojo(User user){                    System.out.println("testPojo"+user);

                return "success";

            }

    /*     * 可以使用Servlet原生的API作为目标方法的参数,具体支持一下类型     * HttpServletRequest     * HttpServletResponse     * HttpSession     * java.security.Principal     * Locale InputStream     * OutputStream     * Reader     * Writer

     * */

    @RequestMapping("/testServletAPI")            public void testServletAPI(HttpServletRequest request,                    HttpServletResponse response,Writer out) throws IOException{                        System.out.println("testServletAPI,"+request+","+response);                        out.write("hello");                //return "success";

            }}

pojo.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">

    <title>My JSP 'pojo.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">    <meta http-equiv="cache-control" content="no-cache">    <meta http-equiv="expires" content="0">        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="This is my page">

  </head>

  <body>  <form action="Pojo/testPojo"  method="post"><br>          username:<input type="text"  name="username" /><br>          password:<input type="password"  name="password" /><br>          email:<input type="text"  name="email" /><br>          age:<input type="text"  name="age" /><br>          <!-- 级联属性 :属性的属性 -->          city:<input type="text"  name="address.city" /><br>          province:<input type="text"  name="address.province" /><br>          <input type="submit" value="Value" />

  </form>

    <a href="Pojo/testServletAPI">Test ServletAPI</a>  </body></html>

success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"  isErrorPage="true"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'success.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>success page. <br></body>
</html>

转载于:https://www.cnblogs.com/liurg/p/8005782.html

SpringMVC学习二相关推荐

  1. SpringMVC学习(二)——SpringMVC架构及组件(及其运行原理)

    相信大家通过前文的学习,已经对SpringMVC这个框架多少有些理解了.还记得上一篇文章中SpringMVC的处理流程吗?    这个图大致描述了SpringMVC的整个处理流程,这个流程图还是相对来 ...

  2. (转)SpringMVC学习(二)——SpringMVC架构及组件

    http://blog.csdn.net/yerenyuan_pku/article/details/72231385 相信大家通过前文的学习,已经对SpringMVC这个框架多少有些理解了.还记得上 ...

  3. SpringMVC学习

    SpringMVC介绍 SpringMVC是什么? SpringMVC和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来: SpringMVC ...

  4. SpringMVC学习笔记(二)常用注解

    SpringMVC学习笔记(二)常用注解 1.RequestParam 作用: 把请求中指定名称的参数给控制器中的形参赋值. 属性: value:请求参数中的名称. required:请求参数中是否必 ...

  5. (转)SpringMVC学习(十二)——SpringMVC中的拦截器

    http://blog.csdn.net/yerenyuan_pku/article/details/72567761 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter, ...

  6. springmvc学习笔记二:重定向,拦截器,参数绑定

    springmvc学习笔记二:重定向,拦截器,参数绑定 Controller方法返回值 返回ModelAndView controller方法中定义ModelAndView对象并返回,对象中可添加mo ...

  7. SpringMVC学习(二)——快速搭建SpringMVC开发环境(注解方式)

    文章目录 说明 1.工程搭建 2.注解配置 2.1.context:annotation-config说明 2.2.context:component-scan配置说明 2.3.mvc:annotat ...

  8. spring security 学习二

    spring security 学习二 doc:https://docs.spring.io/spring-security/site/docs/ 基于表单的认证(个性化认证流程): 一.自定义登录页 ...

  9. SpringMVC学习笔记

    文章目录 SpringMVC学习笔记 Spring MVC 什么是 MVC 设计模式? Spring MVC 的核心组件 Spring MVC 的工作流程 如何使用? Spring MVC 注解 Sp ...

最新文章

  1. HttpClient的性能隐患
  2. Yann LeCun最新访谈:能量模型是通向自主人工智能系统的起点
  3. linux 中断 进程,linux中断分上下部分原因
  4. html5 注册协议弹出层,js制作带有遮罩弹出层实现登录注册表单特效代码分享
  5. 十一假期朋友圈鄙视链,你在第几层?
  6. 论文赏析[COLING18]两种成分句法分析的局部特征模型
  7. 十种程序语言帮你读懂大数据的“秘密”,Julia位列其中!(转)
  8. 51 单片机串口烧录程序方法
  9. 《暗黑破坏神2》关于d2loader的使用说明
  10. 计算机软件的初始密码,怎么设置电脑软件密码
  11. 度度熊保护村庄 HDU - 6080 floyd最小环/叉积判左右
  12. Racket编程指南——24 命令行工具和你的编辑器选择
  13. 计算机技术职业资格考试
  14. jenkins使用报错记录exception message 137
  15. html班级主题完整代码,HTML班级网站
  16. HTTPS之SNI介绍与Nginx多域名支持
  17. CCS中如何使用profile
  18. 关于AD20的PCB电路图打印设置
  19. 这两省软考电子版证书下载已开通
  20. 开源商城项目无法打开问题

热门文章

  1. 详解亚马逊:物流为何是电商命脉
  2. OpenGL概念辨析: 窗口,视口,裁剪区域
  3. win7,windowsXP安装mysql-5.1.49-win32,中文版、英文版,通吃
  4. smarty变量调节器--count_words[计算词数]
  5. SharePoint 2010中的客户端AJAX应用——ASP.NET AJAX模板
  6. JS 伸缩效果代码 (上下伸缩)
  7. vscode配置记录
  8. 如何创建一个用弹出窗口来查看详细信息的超链接列
  9. Visual C# .NET 2003 语言的改变
  10. Linux TCP/IP协议栈笔记