c++语言做网站,专业搜索引擎seo技术公司,承揽合同和建设工程合同的区别,iis7部署网站目录 请求参数的绑定
当绑定参数是基本数据类型和字符串类型时,要注意:
当绑定参数是实体类型#xff08;JavaBean#xff09;要注意:
给集合属性数据封装#xff0c;要注意:
绑定参数是日期类型#xff0c;如何封装#xff1a;
代码实例#xff1a;
实体类1#…目录 请求参数的绑定
当绑定参数是基本数据类型和字符串类型时,要注意:
当绑定参数是实体类型JavaBean要注意:
给集合属性数据封装要注意:
绑定参数是日期类型如何封装
代码实例
实体类1
实体类2
controller类
日期自定义类型转换器
springMVC.xml
web.xml
index.jsp
suc.xml 请求参数的绑定
请求参数的绑定要求提交表单的name和参数的名称是相同的
请求参数支持的数据类型:
基本数据类型和字符串类型实体类型JavaBean集合数据类型List、map集合等 当绑定参数是基本数据类型和字符串类型时,要注意:
提交表单的name和参数的名称是相同的区分大小写
当绑定参数是实体类型JavaBean要注意:
提交表单的name和JavaBean中的属性名称需要一致如果一个JavaBean类中包含其他的引用类型那么表单的name属性需要编写成对象.属性 例如address.name
给集合属性数据封装要注意:
JSP页面编写方式list[0].属性
绑定参数是日期类型如何封装
系统默认格式为2024/7/18其他格式系统无法识别
1、要想改变输入日期格式在实体类相关属性private Date birthday; 上面加注解
DateTimeFormat(pattern yyyy-dd-mm) 指定输入日期的格式
然后在springMVC.xml文件里加上
!--让映射器、适配器和处理器生效(默认不配置也是可以的)--
mvc:annotation-driven conversion-serviceconversionService/
此时那个注解才能生效
2、自定义类型转换器
第一步可以实现Converter的接口实现自定义类型转换器
public class StringToDate implements ConverterString,Date {/*** 进行类型转换的方法* param s 用户输入的内容* return*/
// Overridepublic Date convert(String s) {// 判断if(s null){throw new RuntimeException(请输入内容);}// 进行转换SimpleDateFormat sdf new SimpleDateFormat(yyyy.MM.dd);try {// 进行转换return sdf.parse(s);} catch (ParseException e) {throw new RuntimeException(e);}}
}
第二步在springMVC.xml文件里配置日期类型转换器
!--配置日期类型转换器类型转换器的组件把日期类型转换注入到组件对象中--
bean idconversionService classorg.springframework.context.support.ConversionServiceFactoryBeanproperty nameconverterssetbean classcom.qcby.controller.StringToDate //set/property
/bean
注意在web.xml里面添加过滤器 设置编码使从前端传递过来的数据经过过滤器以指定编码显示在后端解决中文乱码问题
还要注意过滤器一定要放在拦截器的前面才能起效果
!--过滤器解决中文乱码问题--
filterfilter-namecharacterEncodingFilter/filter-namefilter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-class!-- 指定字符集 --init-paramparam-nameencoding/param-nameparam-valueUTF-8/param-value/init-param
/filter
filter-mappingfilter-namecharacterEncodingFilter/filter-nameurl-pattern/*/url-pattern
/filter-mapping 代码实例
下面我们来看代码实例
实体类1
public class User {private String username;private String password;private Car car;// DateTimeFormat(pattern yyyy-dd-mm)private Date birthday;ListString list;public User() {}public User(String username, String password, Car car, Date birthday, ListString list) {this.username username;this.password password;this.car car;this.birthday birthday;this.list list;}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 Car getCar() {return car;}public void setCar(Car car) {this.car car;}public ListString getList() {return list;}public void setList(ListString list) {this.list list;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday birthday;}Overridepublic String toString() {return User{ username username \ , password password \ , car car , birthday birthday , list list };}
}
实体类2
public class Car {private double money;public Car() {}public Car(double money) {this.money money;}public double getMoney() {return money;}public void setMoney(double money) {this.money money;}Overridepublic String toString() {return Car{ money money };}
}
controller类
/*** 控制器类处理用户的请求*/
// 把当前类交给IOC容器进行管理
Controller
//RequestMapping(/hello) 一级
public class HellomvcController {/*** 处理超链接发送出来的请求* return* 注解的属性 如果是value 可以省略不写 其它不行*/// 配置映射的配置 二级
// RequestMapping(path /hello.do,method {RequestMethod.GET},params username)RequestMapping(/hello.do)public String sayHello(){System.out.println(入门方法执行了2...);// 跳转的JSP页面的路径默认使用的是请求的转发// return /WEB-INF/pages/suc.jsp;// 配置了视图解析器后写法return suc;}/*** 前端传过来的参数过多用实体类接收* 前提form表单的name要和实体类的属性名称一致才能通过实体类属性来获取参数* param user* return*/RequestMapping(/usersave1)public String userSave1(User user){System.out.println(user.getUsername():user.getPassword());return suc;}RequestMapping(/usersave2)public String userSave2(User user){System.out.println(user);return suc;}
}
日期自定义类型转换器
public class StringToDate implements ConverterString,Date {/*** 进行类型转换的方法* param s 用户输入的内容* return*/
// Overridepublic Date convert(String s) {// 判断if(s null){throw new RuntimeException(请输入内容);}// 进行转换SimpleDateFormat sdf new SimpleDateFormat(yyyy.MM.dd);try {// 进行转换return sdf.parse(s);} catch (ParseException e) {throw new RuntimeException(e);}}
}
springMVC.xml
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:mvchttp://www.springframework.org/schema/mvcxmlns:contexthttp://www.springframework.org/schema/contextxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd!--开启注解扫描--context:component-scan base-packagecom.qcby/!-- 配置视图解析器 --bean idviewResolver classorg.springframework.web.servlet.view.InternalResourceViewResolverproperty nameprefix value/WEB-INF/pages//propertyproperty namesuffix value.jsp/property/bean!--这里对应DateTimeFormat(pattern yyyy-dd-mm)注解--!--mvc:annotation-driven/--!--配置日期类型转换器类型转换器的组件把日期类型转换注入到组件对象中--bean idconversionService classorg.springframework.context.support.ConversionServiceFactoryBeanproperty nameconverterssetbean classcom.qcby.controller.StringToDate //set/property/bean!--让映射器、适配器和处理器生效(默认不配置也是可以的)--mvc:annotation-driven conversion-serviceconversionService/
/beans
web.xml
!DOCTYPE web-app PUBLIC-//Sun Microsystems, Inc.//DTD Web Application 2.3//ENhttp://java.sun.com/dtd/web-app_2_3.dtd web-app!--过滤器--filterfilter-namecharacterEncodingFilter/filter-namefilter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-class!-- 指定字符集 --init-paramparam-nameencoding/param-nameparam-valueUTF-8/param-value/init-param/filterfilter-mappingfilter-namecharacterEncodingFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping!--统一的servlet做拦截--!--所有的访问请求都会被拦截--servletservlet-namedispatcherServlet/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-classinit-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:springMVC.xml/param-value/init-param!--配置启动加载--load-on-startup1/load-on-startup/servletservlet-mappingservlet-namedispatcherServlet/servlet-name!--/表示拦截所有请求--url-pattern//url-pattern/servlet-mapping/web-app
index.jsp
% page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitle首页/title
/head
body
%--超链接--%
h3入门/h3
%--locahost8085/hello.do--%
h3演示SpringMVC的前后端交互/h3
a href/hello.do 入门程序/ah3演示SpringMVC请求参数传递请求参数为基本类型或字符串时/h3
form methodpost action/usersave1用户名input typetext nameusername idusername/密码input typepassword namepassword idpassword/br/input typesubmit namesubmit value提交/
/formh3演示SpringMVC请求参数传递请求参数为实体类、集合和日期类型/h3
form methodpost action/usersave2用户名input typetext nameusername idusername1/密码input typepassword namepassword idpassword1/金额input typetext nameCar.money idmoney/集合input typetext namelist[0]/集合input typetext namelist[1]/日期input typetext namebirthday idbirthday/br/input typesubmit namesubmit value提交/
/form
/body
/html
suc.xml
% page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitle成功页面/title
/head
bodyh3入门成功了.../h3
/body
/html