Springboot thymeleaf表单时间类型传值 java.lang.IllegalArgumentException

前端简单的layui组件 生成的 yyyy-MM-dd格式时间字符串 

传至下面接口  接收的实体类中包含 java.util.Date

然后报 java.lang.IllegalArgumentException

然后试过前端传时间提前转时间戳等方式都没有解决

需要在实体类中添加下面注释 成功解决

@DateTimeFormat(pattern = "yyyy-MM-dd")



接口成功拿到接收类完整数据






顺颂时祺

### Thymeleaf 请求转发时出现 `java.lang.IllegalStateException` 的解决方案 当在使用 Thymeleaf 进行视图渲染并尝试请求转发时遇到 `java.lang.IllegalStateException: getOutputStream() has already been called for this response` 错误,通常是因为响应对象已经被部分处理过。具体来说,在同一个 HTTP 响应周期内,不能同时使用 `getWriter()` 和 `getOutputStream()` 方法[^1]。 #### 问题根源 此异常的根本原因是 Servlet 容器不允许在一个请求中多次获取不同类型的输出流。一旦调用了其中一个方法,则不能再调用另一个;否则就会触发上述提到的状态非法异常。对于 JSP 页面而言,默认情况下会自动创建一个字符流用于页面内容输出,而如果开发者再显式地去获取字节流来发送二进制数据(比如图片),就容易引发冲突[^4]。 #### 解决方案 为了防止此类情况发生,建议采取如下措施之一: - **避免混合使用**:确保在同一请求范围内只选择一种方式来进行输出操作——要么全部采用字符流(`getWriter`),要么完全依赖于字节流(`getOutputStream`)。 - **调整控制器逻辑**:如果是 Spring MVC 应用程序中的 Controller 层出现问题,可以考虑为导出功能添加 `@ResponseBody` 注解以指示框架直接返回实体内容而不是试图解析模板引擎的结果。 ```java @GetMapping("/export") @ResponseBody public void export(HttpServletResponse response) throws IOException { // 设置响应头信息... OutputStream out = response.getOutputStream(); // 执行导出业务逻辑... } ``` - **配置 Thymeleaf 版本兼容性**:有时由于 Thymeleaf 或其集成库之间的版本不匹配也会间接造成类似的问题。因此确认项目所使用的 Thymeleaf 及相关组件版本是否一致非常重要[^3]。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> <!-- 使用稳定版 --> <version>${thymeleaf.version}</version> </dependency> ``` 通过以上手段应该能够有效减少甚至消除因不当访问 Response 对象而导致的 IllegalStateException 异常现象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值