网站可以自己建立吗,如何给网页命名,深圳设计周展会2023时间,互动营销的方式有哪些支持的数据类型#xff1a;
基本类型参数#xff1a;
包括基本类型和 String 类型
POJO 类型参数#xff1a;
包括实体类#xff0c;以及关联的实体类
数组和集合类型参数#xff1a;
包括 List 结构和 Map 结构的集合#xff08;包括数组#xff09;
SpringMVC …支持的数据类型
基本类型参数
包括基本类型和 String 类型
POJO 类型参数
包括实体类以及关联的实体类
数组和集合类型参数
包括 List 结构和 Map 结构的集合包括数组
SpringMVC 绑定请求参数是自动实现的但是要想使用必须遵循使用要求。
使用要求
如果是基本类型或者 String 类型
要求我们的参数名称必须和控制器中方法的形参名称保持一致。(严格区分大小写)
如果是 POJO 类型或者它的关联对象
要求表单中参数名称和 POJO 类的属性名称保持一致。并且控制器方法的参数类型是 POJO 类型。
如果是集合类型,有两种方式
第一种
要求集合类型的请求参数必须在 POJO 中。在表单中请求参数名称要和 POJO 中集合属性名称相同。 给 List 集合中的元素赋值使用下标。 给 Map 集合中的元素赋值使用键值对。
第二种
接收的请求参数是 json 格式数据。需要借助一个注解实现。
注意: 它还可以实现一些数据类型自动转换。内置转换器全都在
org.springframework.core.convert.support 包下。有
java.lang.Boolean - java.lang.String : ObjectToStringConverter
java.lang.Character - java.lang.Number : CharacterToNumberFactory
java.lang.Character - java.lang.String : ObjectToStringConverter
java.lang.Enum - java.lang.String : EnumToStringConverter
java.lang.Number - java.lang.Character : NumberToCharacterConverter
java.lang.Number - java.lang.Number : NumberToNumberConverterFactory
java.lang.Number - java.lang.String : ObjectToStringConverter
java.lang.String - java.lang.Boolean : StringToBooleanConverter
java.lang.String - java.lang.Character : StringToCharacterConverter
java.lang.String - java.lang.Enum : StringToEnumConverterFactory
java.lang.String - java.lang.Number : StringToNumberConverterFactory
java.lang.String - java.util.Locale : StringToLocaleConverter
java.lang.String - java.util.Properties : StringToPropertiesConverter
java.lang.String - java.util.UUID : StringToUUIDConverter
java.util.Locale - java.lang.String : ObjectToStringConverter
java.util.Properties - java.lang.String : PropertiesToStringConverter
java.util.UUID - java.lang.String : ObjectToStringConverter
......
如遇特殊类型转换要求需要我们自己编写自定义类型转换器。
自定义类型转换器
第一步定义一个类实现 Converter 接口该接口有两个泛型。
public interface ConverterS, T {//S:表示接受的类型T表示目标类型/*** 实现类型转换的方法*/NullableT convert(S source);
}
/*** 自定义类型转换器*/
public class StringToDateConverter implements ConverterString, Date {/*** 用于把 String 类型转成日期类型*/Overridepublic Date convert(String source) {DateFormat format null;try {if(StringUtils.isEmpty(source)) {throw new NullPointerException(请输入要转换的日期);}format new SimpleDateFormat(yyyy-MM-dd);Date date format.parse(source);return date;} catch (Exception e) {throw new RuntimeException(输入日期有误);}}
}第二步在 spring 配置文件中配置类型转换器。 spring 配置类型转换器的机制是将自定义的转换器注册到类型转换服务中去。
!-- 配置类型转换器工厂 --
bean idconverterService classorg.springframework.context.support.ConversionServiceFactoryBean
!-- 给工厂注入一个新的类型转换器 --property nameconvertersarray!-- 配置自定义类型转换器 --bean classcom.itheima.web.converter.StringToDateConverter/bean/array/property
/bean第三步在 annotation-driven 标签中引用配置的类型转换服务
!-- 引用自定义类型转换器 --
mvc:annotation-driven conversion-serviceconverterService/mvc:annotation-driven使用 ServletAPI 对象作为方法参数 RequestMapping(/testServletAPI)public String testServletAPI(HttpServletRequest request,HttpServletResponse response,HttpSession session) {System.out.println(request);System.out.println(response);System.out.println(session);return success;}