SpringMVC学习二
使用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学习二相关推荐
- SpringMVC学习(二)——SpringMVC架构及组件(及其运行原理)
相信大家通过前文的学习,已经对SpringMVC这个框架多少有些理解了.还记得上一篇文章中SpringMVC的处理流程吗? 这个图大致描述了SpringMVC的整个处理流程,这个流程图还是相对来 ...
- (转)SpringMVC学习(二)——SpringMVC架构及组件
http://blog.csdn.net/yerenyuan_pku/article/details/72231385 相信大家通过前文的学习,已经对SpringMVC这个框架多少有些理解了.还记得上 ...
- SpringMVC学习
SpringMVC介绍 SpringMVC是什么? SpringMVC和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来: SpringMVC ...
- SpringMVC学习笔记(二)常用注解
SpringMVC学习笔记(二)常用注解 1.RequestParam 作用: 把请求中指定名称的参数给控制器中的形参赋值. 属性: value:请求参数中的名称. required:请求参数中是否必 ...
- (转)SpringMVC学习(十二)——SpringMVC中的拦截器
http://blog.csdn.net/yerenyuan_pku/article/details/72567761 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter, ...
- springmvc学习笔记二:重定向,拦截器,参数绑定
springmvc学习笔记二:重定向,拦截器,参数绑定 Controller方法返回值 返回ModelAndView controller方法中定义ModelAndView对象并返回,对象中可添加mo ...
- SpringMVC学习(二)——快速搭建SpringMVC开发环境(注解方式)
文章目录 说明 1.工程搭建 2.注解配置 2.1.context:annotation-config说明 2.2.context:component-scan配置说明 2.3.mvc:annotat ...
- spring security 学习二
spring security 学习二 doc:https://docs.spring.io/spring-security/site/docs/ 基于表单的认证(个性化认证流程): 一.自定义登录页 ...
- SpringMVC学习笔记
文章目录 SpringMVC学习笔记 Spring MVC 什么是 MVC 设计模式? Spring MVC 的核心组件 Spring MVC 的工作流程 如何使用? Spring MVC 注解 Sp ...
最新文章
- HttpClient的性能隐患
- Yann LeCun最新访谈:能量模型是通向自主人工智能系统的起点
- linux 中断 进程,linux中断分上下部分原因
- html5 注册协议弹出层,js制作带有遮罩弹出层实现登录注册表单特效代码分享
- 十一假期朋友圈鄙视链,你在第几层?
- 论文赏析[COLING18]两种成分句法分析的局部特征模型
- 十种程序语言帮你读懂大数据的“秘密”,Julia位列其中!(转)
- 51 单片机串口烧录程序方法
- 《暗黑破坏神2》关于d2loader的使用说明
- 计算机软件的初始密码,怎么设置电脑软件密码
- 度度熊保护村庄 HDU - 6080 floyd最小环/叉积判左右
- Racket编程指南——24 命令行工具和你的编辑器选择
- 计算机技术职业资格考试
- jenkins使用报错记录exception message 137
- html班级主题完整代码,HTML班级网站
- HTTPS之SNI介绍与Nginx多域名支持
- CCS中如何使用profile
- 关于AD20的PCB电路图打印设置
- 这两省软考电子版证书下载已开通
- 开源商城项目无法打开问题
热门文章
- 详解亚马逊:物流为何是电商命脉
- OpenGL概念辨析: 窗口,视口,裁剪区域
- win7,windowsXP安装mysql-5.1.49-win32,中文版、英文版,通吃
- smarty变量调节器--count_words[计算词数]
- SharePoint 2010中的客户端AJAX应用——ASP.NET AJAX模板
- JS 伸缩效果代码 (上下伸缩)
- vscode配置记录
- 如何创建一个用弹出窗口来查看详细信息的超链接列
- Visual C# .NET 2003 语言的改变
- Linux TCP/IP协议栈笔记