《尚庭公寓》 P161-根据id更新租约状态 org.springframework.core.convert.ConversionFailedException

报错信息

org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: 
Failed to convert value of type 'java.lang.String' to required type 'com.atguigu.lease.model.enums.LeaseStatus'; 

Caused by: org.springframework.core.convert.ConversionFailedException: 
Failed to convert from type [java.lang.String] to type [@org.springframework.web.bind.annotation.RequestParam com.atguigu.lease.model.enums.LeaseStatus] for value '1'

原因
Spring Context未注册转换器:确保你的StringToBaseEnumConverterFactory被Spring正确扫描并注册到上下文中。
解决方法
在web-app模块的config定义StringToBaseEnumConverterFactory,再注册到WebMvcConfigurer。

//(1)定义StringToBaseEnumConverterFactory 
@Component
public class StringToBaseEnumConverterFactory implements ConverterFactory<String, BaseEnum> {
    @Override
    public <T extends BaseEnum> Converter<String, T> getConverter(Class<T> targetType) {
        return new Converter<String, T>() {
            @Override
            public T convert(String code) {
                T[] enumConstants = targetType.getEnumConstants();//拿到目标类型的全部枚举实例
                for (T enumConstant : enumConstants) {
                    if (enumConstant.getCode().equals(Integer.valueOf(code))) {
                        return enumConstant;
                    }
                }
                throw new IllegalArgumentException("非法的枚举值:" + code);
            }
        };
    }
}

//(2)注册转换器
@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer { 
    @Autowired
    private StringToBaseEnumConverterFactory stringToBaseEnumConverterFactory;
    @Override
    public void addFormatters(FormatterRegistry registry) {
        registry.addConverterFactory(this.stringToBaseEnumConverterFactory);
    }
}
### 尚庭公寓前端开发资料与项目 关于尚庭公寓项目的前端开发部分,虽然当前提供的引用主要集中在后端接口设计和服务实现上[^1][^2][^3],但从整体架构的角度来看,前后端分离的设计模式通常是现代Web应用的标准实践。因此可以推测,尚庭公寓的前端可能基于主流的JavaScript框架构建。 #### 可能使用的前端技术栈 通常情况下,类似的Java后端项目会搭配以下几种常见的前端技术: - **React.js** 或 **Vue.js**: 这些现代化的前端框架能够提供高效的组件化开发体验,适合处理复杂的交互逻辑以及动态数据展示。 - **Axios**: 用于发起HTTP请求并与后端API通信,例如调用`selectApartmentItemVoById(Long id)`来获取指定房源详情。 - **Element UI / Ant Design**: 提供丰富的UI组件库支持快速搭建界面原型,比如表单、日历控件等可以帮助用户更方便地完成预约看房操作。 以下是利用上述工具和技术的一个简单示例代码片段: ```javascript // 使用axios发送GET请求至后端服务 import axios from 'axios'; async function fetchApartmentDetail(id) { try { const response = await axios.get(`/api/apartments/${id}`); console.log('Fetched apartment detail:', response.data); return response.data; } catch (error) { console.error('Error fetching apartment detail:', error); } } ``` 另外,在实际项目中还需要考虑如何解决跨域问题以及优化用户体验等方面的内容。对于像@MapperScan这样的注解引发的问题,则属于Spring Boot配置层面的事情,并不会直接影响到前端开发者的工作流程[^4]。 #### 数据可视化与地图集成 为了增强用户的感知度,还可以通过Google Maps API或者高德地图SDK等方式将地理位置信息嵌入到网页当中,使得潜在租客能够在查看房屋列表的同时直观了解到周边配套设施情况。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值