为什么你的@InitBinder不生效?深度剖析Spring MVC日期格式化失效原因

第一章:为什么你的@InitBinder不生效?

在Spring MVC开发中,@InitBinder 是一个用于自定义数据绑定行为的重要注解。然而,许多开发者发现该注解并未按预期工作,导致表单参数无法正确绑定或类型转换失败。

方法未被正确调用的原因

@InitBinder 方法必须声明在控制器类(@Controller)或配置类中,并且只能影响当前类中的请求处理方法。若将其放置在非控制器类或未启用Spring MVC的上下文中,将不会生效。
  • 确保类上标注了 @Controller 或 @RestController
  • 确认Spring组件扫描已包含该控制器所在包
  • 避免在父类中使用时未被子类继承(需为 protected 或 public)

正确的使用示例


@Controller
public class UserController {

    @InitBinder
    public void initWebDataBinder(WebDataBinder binder) {
        // 注册自定义日期编辑器
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
    }

    @PostMapping("/user")
    public String saveUser(@ModelAttribute User user) {
        // 此处User中的Date字段将按指定格式解析
        return "success";
    }
}
上述代码中,@InitBinder 方法注册了一个针对 Date 类型的自定义编辑器,确保前端传入的字符串能正确转换为日期对象。

常见配置问题对照表

问题现象可能原因解决方案
日期绑定失败未注册CustomDateEditor在@InitBinder中添加类型转换器
方法从未执行控制器未被Spring管理检查@ComponentScan路径与@Bean注册
仅部分方法生效@InitBinder作用范围限制确保目标HandlerMethod在同一Controller内
此外,若使用了 @Valid 或 javax.validation 验证框架,需注意 @InitBinder 中的设置也会影响验证过程中的类型转换环节。

第二章:@InitBinder 核心机制解析

2.1 @InitBinder 的作用域与执行时机

作用域解析

@InitBinder 注解标注的方法仅在当前 Controller 内生效,不会影响其他控制器。若需全局生效,应结合 @ControllerAdvice 使用。

执行时机

该方法在每次请求参数绑定前自动执行,优先于 @RequestMapping 方法调用。可用于注册自定义属性编辑器或数据绑定规则。

@InitBinder
public void initWebDataBinder(WebDataBinder binder) {
    binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}

上述代码注册了一个日期类型的自定义编辑器,dateFormat 为预定义的 SimpleDateFormat 实例,第二个参数表示允许空值。此配置将在每个请求参数转换为 Date 类型时生效。

2.2 数据绑定流程中 @InitBinder 的介入点

在 Spring MVC 的数据绑定流程中,@InitBinder 注解方法会在请求参数绑定到控制器对象之前自动执行,用于定制数据绑定器 WebDataBinder。
执行时机与作用范围
@InitBinder 标注的方法会在每个匹配的请求处理前被调用,仅影响当前控制器或通过 @ControllerAdvice 全局生效。
@InitBinder
public void customizeBinding(WebDataBinder binder) {
    binder.registerCustomEditor(Date.class, new DateEditor());
}
上述代码注册了一个自定义的日期类型编辑器,将字符串参数转换为 Date 类型。参数 binder 提供了对绑定过程的细粒度控制,如添加自定义转换器、设置字段可绑定性等。
典型应用场景
  • 注册自定义属性编辑器(PropertyEditor)
  • 配置字段验证规则
  • 排除不安全字段(如:binder.setDisallowedFields("role"))

2.3 WebDataBinder 与类型转换器的注册机制

在Spring MVC中,WebDataBinder 负责将HTTP请求参数绑定到控制器方法的参数对象上,并支持自定义类型转换逻辑。
类型转换器的注册方式
通过 WebDataBinder 可以注册自定义的 PropertyEditor 或实现 Converter 接口。推荐使用基于泛型的转换器:

@Component
public class StringToGenderConverter implements Converter<String, Gender> {
    @Override
    public Gender convert(String source) {
        return Gender.fromValue(source);
    }
}
该转换器将字符串转换为枚举类型 Gender,需在配置类中注册:
  1. 实现 WebMvcConfigurer
  2. 重写 addFormatters 方法
  3. 调用 registry.addConverter 注册转换器
数据绑定流程
请求参数 → DataBinder → 类型转换服务(ConversionService) → 目标对象
此机制解耦了原始字符串与业务对象之间的转换逻辑,提升代码可维护性。

2.4 多控制器下 @InitBinder 的共享与隔离

在Spring MVC中,@InitBinder方法用于初始化WebDataBinder,实现请求参数的绑定与格式化。当多个控制器共存时,其共享与隔离策略直接影响数据绑定行为。
共享机制
若在基类或@ControllerAdvice中定义@InitBinder,则对所有控制器生效,实现全局统一处理:
@ControllerAdvice
public class GlobalBindingConfigurer {
    @InitBinder
    public void init(WebDataBinder binder) {
        binder.registerCustomEditor(Date.class, new DateEditor());
    }
}
该配置会应用于所有控制器,确保日期类型统一解析。
隔离控制
若在具体控制器内声明@InitBinder,则仅作用于当前控制器,避免交叉干扰。通过局部绑定器可实现个性化参数处理逻辑,保障模块间独立性。

2.5 常见配置误区与调试技巧

忽略环境变量优先级
配置加载时,环境变量常覆盖配置文件中的值,但开发者易忽视其优先级。例如,在 Spring Boot 中,系统环境变量 > application.yml > 默认值。
server:
  port: ${PORT:8080}  # 若未设置 PORT 环境变量,默认使用 8080
该写法确保服务在容器化部署时能灵活适配端口注入。
日志级别配置不当
过度开启 DEBUG 日志会导致性能下降。应通过动态调试机制按需启用:
  • 生产环境使用 INFO 及以上级别
  • 临时调试时通过 JMX 或 Actuator 动态调整 logger 级别
  • 避免在代码中硬编码 DEBUG 输出
配置热更新失效
使用 Spring Cloud Config 时,仅刷新上下文不足以更新 Bean。需结合 @RefreshScope 注解实现热加载。
配置项推荐值说明
spring.cloud.config.fail-fasttrue启动时快速失败,便于及时发现配置缺失
spring.cloud.config.retry.max-attempts6增强网络抖动下的容错能力

第三章:Spring MVC 日期格式化实践

3.1 使用 @DateTimeFormat 实现请求参数格式化

在Spring MVC中,处理日期类型请求参数时,常因格式不匹配导致绑定失败。@DateTimeFormat 注解提供了一种声明式方式,将字符串参数按指定格式转换为日期类型。
基本用法
@GetMapping("/event")
public String getEvent(@RequestParam 
                       @DateTimeFormat(pattern = "yyyy-MM-dd") Date date) {
    // date 参数将按指定格式自动解析
    return "Received date: " + date;
}
上述代码中,pattern 属性定义了期望的日期格式。当客户端传入 ?date=2023-10-01 时,Spring 会正确解析为 java.util.Date 对象。
支持的类型与场景
  • java.util.Date:通用日期类型
  • java.time.LocalDate:Java 8 新时间API
  • java.time.LocalDateTime:本地日期时间
该注解也可用于实体类属性,结合 @RequestBody 或表单绑定使用,提升数据绑定灵活性。

3.2 配合 @InitBinder 注册自定义日期编辑器

在 Spring MVC 中,处理前端传递的日期字符串时,常因格式不匹配导致绑定失败。通过 @InitBinder 可注册自定义编辑器,实现字符串到日期类型的自动转换。
注册自定义日期编辑器
@ControllerAdvice
public class CustomDateEditorRegistrar {

    @InitBinder
    public void registerCustomEditor(WebDataBinder binder) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        dateFormat.setLenient(false);
        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
    }
}
上述代码中,@InitBinder 注解方法会拦截所有控制器的数据绑定过程。使用 SimpleDateFormat 定义日期格式,并通过 CustomDateEditor 将其注册为 Date.class 的编辑器,第二个参数 false 表示不允许空值。
支持多种日期格式
可扩展逻辑以支持 LocalDateTime 等新时间类型,结合 PropertyEditorSupport 自定义解析逻辑,提升系统灵活性与健壮性。

3.3 全局日期格式化的统一解决方案

在大型前端项目中,日期格式散乱会导致维护困难和用户体验不一致。为解决这一问题,需建立全局统一的日期处理机制。
封装日期格式化工具类
通过创建通用工具函数,集中管理日期格式转换逻辑:
/**
 * 统一日期格式化方法
 * @param {Date|string} date - 输入日期
 * @param {string} format='YYYY-MM-DD' - 目标格式
 * @returns {string} 格式化后的日期字符串
 */
function formatDate(date, format = 'YYYY-MM-DD') {
  const d = new Date(date);
  const year = d.getFullYear();
  const month = String(d.getMonth() + 1).padStart(2, '0');
  const day = String(d.getDate()).padStart(2, '0');
  return format.replace('YYYY', year).replace('MM', month).replace('DD', day);
}
该函数接收日期输入与目标格式,输出标准化字符串,便于在组件、接口层统一调用。
注册全局过滤器或指令(Vue示例)
在框架层面注册全局能力,减少重复代码:
  • Vue 中可通过 app.config.globalProperties 注入
  • React 可结合 Context + 自定义 Hook 实现跨组件共享
  • Angular 可封装为 Pipe 并全局提供

第四章:典型失效场景与排错指南

4.1 请求参数绑定失败:String 到 Date 转换异常

在Spring MVC中,当客户端传递的请求参数为字符串类型而控制器方法期望接收Date类型时,若未配置合适的转换器,将触发TypeMismatchException。
常见异常场景
例如,前端发送birthDate=2023-08-15,而后端实体字段为:
private Date birthDate;
此时默认无法完成解析。
解决方案
可通过以下方式注册自定义编辑器:
  • 使用@DateTimeFormat(pattern = "yyyy-MM-dd")注解标注字段;
  • 全局配置FormattingConversionService支持日期格式化。
启用后,框架将依据指定格式自动完成字符串到java.util.Date的类型转换,避免绑定失败。

4.2 @InitBinder 方法未被调用的定位方法

确认控制器类的结构与注解使用
确保 @InitBinder 方法位于被 @Controller 或 @RequestMapping 注解标记的类中。该方法必须是 void 返回类型且不带参数,通常声明为:
@InitBinder
public void initWebDataBinder(WebDataBinder binder) {
    binder.registerCustomEditor(Date.class, new DateEditor());
}
此方法用于注册自定义的数据绑定规则,若所在类未被Spring MVC扫描,则不会生效。
检查组件扫描与配置类
验证Spring配置是否正确启用组件扫描。若使用Java配置,需包含:
  1. @Configuration 标记配置类;
  2. @ComponentScan 指定控制器所在包路径。
若缺少扫描路径,@Controller 类将不会被注册,进而导致 @InitBinder 不执行。

4.3 Jackson 消息转换器对日期处理的干扰

在Spring Boot应用中,Jackson作为默认的消息转换器,常用于JSON序列化与反序列化。然而,其对日期类型的处理机制容易引发数据不一致问题。
默认日期格式问题
Jackson默认将java.util.Date序列化为时间戳,而非可读的日期字符串。这可能导致前端解析困难。
{
  "createTime": 1712016000000
}
该输出为毫秒级时间戳,缺乏可读性。可通过配置全局日期格式解决。
解决方案配置
启用ISO标准日期格式:
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
上述配置指定使用中国时区,并采用常见的时间格式,提升前后端交互一致性。
  • 避免使用默认时间戳输出
  • 统一服务间日期格式规范
  • 考虑使用Java 8新时间API(如LocalDateTime)

4.4 时区与 Locale 设置引发的格式化偏差

在分布式系统中,时间数据的显示常因服务器与客户端的时区或Locale配置不同而出现偏差。例如,同一时间戳在不同时区下可能被解析为不同的本地时间。
常见问题表现
  • 日期显示相差数小时,尤其跨时区部署时
  • 月份、星期名称语言不符合用户预期
  • 数字千分位或小数点符号错乱
代码示例:Java中的时间格式化
DateTimeFormatter formatter = DateTimeFormatter
    .ofPattern("yyyy-MM-dd HH:mm:ss")
    .withZone(ZoneId.of("Asia/Shanghai"));
String formatted = formatter.format(Instant.now());
上述代码显式指定时区为上海,避免使用JVM默认时区。若省略withZone(),则依赖运行环境的时区设置,易导致格式化结果不一致。
推荐实践
项目建议值
时区UTC 或 显式声明目标时区
Locale按用户偏好动态设置

第五章:总结与最佳实践建议

性能监控与调优策略
在生产环境中,持续监控系统性能是保障稳定性的关键。使用 Prometheus 与 Grafana 搭建可视化监控体系,可实时追踪服务延迟、CPU 使用率和内存泄漏等问题。
  • 定期执行负载测试,识别瓶颈点
  • 配置自动告警规则,如连续 5 分钟 CPU 超过 80%
  • 利用 pprof 工具分析 Go 应用的运行时性能
安全加固措施

// 启用 HTTPS 并强制重定向 HTTP 请求
r := gin.New()
r.Use(secureHeaders()) // 自定义中间件添加安全头

func secureHeaders() gin.HandlerFunc {
    return func(c *gin.Context) {
        c.Header("X-Content-Type-Options", "nosniff")
        c.Header("X-Frame-Options", "DENY")
        c.Header("Strict-Transport-Security", "max-age=31536000")
    }
}
部署架构优化建议
架构模式适用场景优势
单体应用初期项目,团队规模小部署简单,维护成本低
微服务 + Service Mesh高并发、多团队协作独立伸缩,故障隔离
日志管理规范
统一日志格式便于集中分析。建议采用 JSON 格式输出结构化日志,并通过 Fluent Bit 收集至 Elasticsearch。
日志产生 → 日志收集器(Fluent Bit) → 消息队列(Kafka) → 存储与检索(Elasticsearch + Kibana)
隔离型全桥LLC谐振变化器建模及参数设计资料【仿真+设计报告+计算书】 内容概要:本文档系统性地提供了隔离型全桥LLC谐振变换器的建模、仿真与参数设计全套技术资料,涵盖Simulink/Plecs仿真模型、详细设计报告及Mathcad计算书,内容涉及开环与闭环控制、软启动过程、恒压恒流双闭环竞争控制等多种工况。资料还拓展至多相交错LLC、双向CLLC拓扑以及V2G(Vehicle-to-Grid)电动汽车充放电等前沿应用场景,并融合状态估计算法(如卡尔曼滤波、扩展卡尔曼滤波、粒子滤波)与神经网络技术进行系统性能优化,配套PPT说明与高水平EI期刊复现案例,为电力电子领域的科研与工程设计提供完整的技术支撑; 适合人群:适用于电力电子、电气工程及其自动化等相关专业的高校研究生、科研人员,以及从事高频DC-DC变换器、新能源电源系统开发的工程师,具备扎实电路理论基础和Matlab/Simulink仿真能力者尤佳; 使用场景及目标:①支撑LLC谐振变换器相关的科研课题、学位论文或项目开发;②开展高频高效电源的参数设计、效率优化与动态响应分析;③学习并复现高水平期刊中先进的控制策略,如变频控制、混合移相控制及智能优化算法;④掌握Simulink/Matlab在电力电子系统建模、控制算法实现与状态估计中的综合应用; 阅读建议:建议结合仿真模型、Mathcad计算书与设计报告三位一体同步研习,重点理解主电路参数设计与闭环控制逻辑之间的耦合关系,优先运行典型算例并调试关键模块,有条件者可进一步推进至硬件原型验证,并积极探索状态估计与人工智能算法在电力系统动态建模中的融合应用。 立即下载

相关推荐

标准材质转物理材质 对应脚本:标准转物理材质转x.ms 一、插件用途 将 3ds Max 场景中的 StandardMaterial 标准材质转换为 PhysicalMaterial 物理材质

标准材质转物理材质 对应脚本:标准转物理材质转x.ms 一、插件用途 将 3ds Max 场景中的 StandardMaterial 标准材质转换为 PhysicalMaterial 物理材质,并递归处理 Multi/Sub 多维子材质及 Blend 混合材质中的标准材质。 二、转换内容 脚本尝试进行以下参数映射: - 漫反射颜色 → Physical Material 基础颜色。 - 漫反射贴图及启用状态 → 基础颜色贴图。 - 凹凸贴图、启用状态及强度 → 物理材质凹凸槽;强度会按脚本比例换算。 - Opacity 贴图 → 物理材质透明颜色贴图。 - 标准材质自发光颜色和强度 → 物理材质发光颜色和发光强度。 - 反射贴图强度 → 粗糙度的反向换算。 - Glossiness → Metalness 数值换算。 三、使用方法 1. 在 3ds Max 中运行脚本。 2. 出现“赵山河材质转换”小窗口。 3. 点击“标准材质转物理材质”。 4. 脚本扫描整个场景的材质库,并将场景物体所使用的标准材质转换为物理材质。 5. 转换完成后刷新视口。 四、处理范围 - 不是只处理当前选择对象,而是扫描整个场景的材质库。 - 对 Multi/Sub 材质递归转换其中的标准材质子项。 - 对 Blend 材质递归转换 map1、map2 中的材质。 - 非 StandardMaterial 的材质会按脚本逻辑保留,不会强制全部转成 PhysicalMaterial。 五、注意事项 - 这是参数近似转换,不是渲染结果完全一致的材质转换。 - 标准材质中的高光、反射、透明度、特殊贴图和高级参数不一定有一一对应关系。 - 脚本把 Glossiness 映射到 Metalness,属于

Spring MVC @InitBinder 不执行竟然和参数有关

如下代码,访问/inPiecesQueryList时,initBinder方法不执行。 [code="java"] @InitBinder public void initBinder(ServletRequestDataBinder binder) { /** * 自动转换日期类型的字段格式 */ binder.registerCustomEdit...

bibiye 1964

SAP S/4HANA BP主数据-CVI模型

SAP BP主数据介绍 ECC系统中的客户、供应商主数据的限制: •一个客户或供应商仅能有一个地址 •客户和供应商没有关联关系(同一个实体公司) •如果一家公司既是供应商也是客户需建立两个主数据(数据冗余) •属性无时间相关性 S4系统中BP优点: •一个BP可以扮演多个角色(个人,客户,供应商)且角色之间数据共享 •时间相关的属性 •统一的数据架构,无数据冗余 •CVI模型可以确保BP和客户/供应商数据同步 SAP BP主数据配置 •配置BP角色/角色类别 •配置BP角.

qq_37785505的博客 1549

Spring常用注解(绝对经典),全靠这份Java知识点PDF大全

@Bean public ColorFactoryBean colorFactoryBean(){ return new ColorFactoryBean(); } //创建一个spring定义的FactoryBean public class ColorFactoryBean implements FactoryBean { //返回一个Color对象,并将Color添加到容器中 public Color getObject() throws Exception { System.out.println(

m0_65321095的博客 1万+

专栏丨华为HN8145XR光猫获取超级管理员密码

摘要:本文详细介绍了华为HN8145xr光猫获取超级管理员权限的完整步骤。首先通过ONT使能工具补全shell,然后利用Telnet登录光猫后台进行操作。文章提供了多种获取超级密码的方法,包括配置文件解密、一键查询工具等,并针对联通光猫特别说明了默认密码格式(CUAdmin+后八位数字)。此外,还介绍了恢复出厂设置、修改SSID等实用操作,帮助用户完全掌控光猫设备。文末附有详细的命令行操作指南,适合有一定技术基础的用户参考。

8255

“华为”云桌面系统声音比较小,如何调大?

调整操作系统声音 开启云桌面,登录账户之后,进入操作系统,鼠标左键点击右下角的声音图标,把声音调到最大(如下图); 可以考虑使用浏览器在线听音乐,确定声音的音量! 如果只是耳麦声音小,可以鼠标右键点击声音图标,选择录音设备(R),如下图: 点击“录音设备(R)”后进入,鼠标右键点击“麦克风”选择属性,将侦听级别调至最大,确定! 调整华为云终端声音(软设置) 将鼠标移至桌面的顶端中间位置,打开如下图的样式图标,鼠标左键点击“主页”; 点击“主页”之后,将回到云桌面的终端操作界面,

shunchang的专栏 2336

initbinder对ajax不起作用,详解SpringMVC注解@initbinder解决类型转换问题

在使用SpringMVC的时候,经常会遇到表单中的日期字符串和JavaBean的Date类型的转换,而SpringMVC默认不支持这个格式的转换,所以需要手动配置,自定义数据的绑定才能解决这个问题。在需要日期转换的Controller中使用SpringMVC的注解@initbinder和Spring自带的WebDateBinder类来操作。WebDataBinder是用来绑定请求参数到指定的属性编...

weixin_35107023的博客 480

Android开发必备:TBS腾讯浏览服务静态集成完整指南(附Demo下载)

本文详细解析了Android开发中TBS腾讯浏览服务的静态集成方案,通过对比动态集成,深入剖析了其核心原理与适用场景。文章提供了从环境准备、资源获取、项目配置到代码初始化的完整指南,并重点介绍了WebView与文件预览等高级特性的实战应用。针对集成过程中的常见问题,提供了详尽的排查清单与性能调优建议,旨在帮助开发者构建极致稳定、不依赖网络的WebView与文件预览功能。文末附有经过验证的Demo项目可供下载参考。

earth的博客 366

为什么你的@InitBinder不生效?,深入剖析日期绑定失败的7个原因

解决Spring MVC日期绑定失败难题,深入解析@InitBinder的日期格式化失效原因。涵盖时区配置、自定义编辑器注册、注解使用等7大关键场景,精准定位问题根源。掌握正确用法,提升数据绑定稳定性,值得收藏。

QuickSolve的博客 612

WorkVisual传输程序报错_发现一个内部错误

WorkVisual传输程序报错_发现一个内部错误

qq_16401025的博客 2454

PCL:SAC-IA+ICP配准

【代码】SAC-IA+ICP配准。

m0_71596228的博客 1018

【Spring MVC研究】聊聊web绑定器(WebDataBinder、@InitBinder)

聊聊web绑定器(WebDataBinder、@InitBinder)

yuchangyuan5237的博客 2706

Android Framework SurfaceFlinger面试题及参考答案

请简述 SurfaceFlinger 在 Android 系统中的作用。 SurfaceFlinger 是 Android 系统中一个非常关键的服务。它主要负责将多个应用程序的 Surface 合成到一个屏幕显示内容中。 从应用程序的角度来看,每个应用都有自己的 UI 界面,这些 UI 界面实际上是由一系列的图层(Surface)构成。例如,一个应用可能有背景图层、按钮图层、文本图层等。应用通过向 SurfaceFlinger 提供这些 Surface 来请求显示。 SurfaceFl

大模型大数据攻城狮的专栏 1185

springMVC之@InitBinder 和 Validator

注意 将输入的字符串数据转换为java.util.Date类型的数据 org.springframework.beans.propertybeans.CustomDateEditor 自定义属性编辑器 继承java.beans.PropertyEditorSupport类 重写其setAdText(String text)方法完成 调用setValue(Object Value)方法完成转换后的值的设置 public class StringToListPropertyEditor extends Pr

qq_40813329的博客 1051

Python爬虫实战:爬取Bilibili和YouTube视频、弹幕和评论

随着视频内容平台的爆发式增长,视频网站成为了人们获取信息、娱乐和知识的重要渠道。在这些平台上,视频、弹幕和评论数据可以为我们提供重要的信息,帮助我们了解用户的行为、视频的受欢迎程度以及内容的互动情况。本篇文章将带你实现一个Python爬虫,用来爬取Bilibili和YouTube上的视频、弹幕、评论等数据。我们将详细介绍爬虫的实现过程,使用最新的Python技术,并且会提供完整的代码。Bilibili网站提供了多种方式来获取视频数据,最直接的方式是通过其开放的API接口来获取视频、弹幕和评论等数据。

2201_76125261的博客 1775

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SpringBoot--@InitBinder--使用/原理

本文介绍@InitBinder的用法与原理。

IT利刃出鞘的博客 1663

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

springMVC @initBinder 使用

controller代码: @Controller public class WelcomeController { @InitBinder public void iniiBinder(WebDataBinder binder){ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); format.se

songzailaile的专栏 5736

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

initbinder对ajax不起作用,InitBinder不被调用/调用

Save列表:的人对象列表 的OBJ:Class obj{Person person;getter/setters}在这JSP,我有当选择特定单选按钮附加的人。在控制器端@RequestMapping(value = "/save", method = RequestMethod.POST)public String postProcess(@ModelAttribute("obj") Obj o...

weixin_30789475的博客 501

spring mvc InitBinder 遇到的坑接收不了参数

1、前端代码如下: $("#paraListTable").datagrid("reload", { "sysParaVO.para_code" : paraCode, "sysParaVO.sys_name" : sysName, "sysParaVO.para_state" : null, "sysParaVO.para_name" : paraName }); 2、后端代码

qioutiandeyun的博客 1571

spring中@InitBinder和WebBindingInitializer的使用

@InitBinder用于在@Controller中标注于方法,表示为当前控制器注册一个属性编辑器或者其他,只对当前的Controller有效 WebBindingInitializer:实现WebBindingInitializer,重写initBinder注册的属性编辑器是全局的属性编辑器,对所有的Controller都有效 自定义springMVC的属性编辑器主要有两种方式,

北漂码农 1万+

@InitBinder

由@InitBinder表示的方法,可以对WebDataBinder对象进行初始化。WebDataBinder是DataBinder的子类,用于完成由表单到JavaBean属性的绑定。@InitBinder方法不能有返回值,它必须盛名为void。@InitBinder方法的参数通常是WebDataBinder,@InitBinder可以对WebDataBinder进行初始化。 @InitBind

Christian_Lee的博客 1万+

initbinder对ajax不起作用,ajax – @InitBinder与@RequestBody在Spring 3.2.4中转义XSS

我在我的方法中有一个@RequestBody注释参数,如下所示:@RequestMapping(value = "/courses/{courseId}/{name}/comment", method = RequestMethod.POST)@ResponseStatus(HttpStatus.OK)public @ResponseBody CommentContainer addComment...

weixin_35245810的博客 474

SpringMVC中的@InitBinder注解【记录】

一、Spring请求参数绑定流程: 1、请求参数绑定流程: 我们在开发的时候,经常会从html,jsp中将请求参数通过request对象传递到后台,可是经常会遇到这么一种情况,那就是传过来的数据到后台后,还要再组装成一种对象的格式。 2、Spring中请求参数绑定: Spring可以自动将request中的请求参数数据绑定到对象的每个property上,但是只会绑定一些简单数据类型(比如Strings,int,float)到对应的对象中。可是如果面对复杂的对象,那就要借助PropertyEditor接口来

单枪匹码 6132

springMVC里面的注解@InitBinder

在需要日期转换的Controller中使用SpringMVC的注解@initbinder和Spring自带的WebDateBinder类来操作。 WebDataBinder是用来绑定请求参数到指定的属性编辑器.由于前台传到controller里的值是String类型的,当往Model里 Set这个值的时候,如果set的这个属性是个对象,Spring就会去找到对应的editor进行转换,然后再S

没有到不了的明天NA的博客 1123
上一篇: 【高并发场景下的连接管理】:Java 11 HttpClient connectTimeout最佳实践指南
下一篇: 为什么你的浮点计算慢?FloatVector加法优化让你的Java程序提速10倍
CodePulse
博客等级 码龄2年 187粉丝 2233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值