EL表达式replace缺陷

本文探讨了如何使用自定义EL表达式解决业务逻辑复杂的MVC实现问题,通过实例说明了将Java的replaceAll方法应用到EL表达式中,避免了正则表达式的使用,有效降低了维护成本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EL表达式的replace功能相当于JAVA中的replace,不支持正则表达式,所以要结合实际自写一个EL方法,其实就是用java的replaceAll来实现。不熟悉自己写EL表达式方法的朋友可以自己百度一下,有很多例子,步骤都差不多,有的人把EL方法类打成JAR包导入,有的人用xml文件配置。其实都一样,这里主要总结的是:EL表达式支持自己写方法,这样就很好的解决了业务逻辑非常复杂的一些MVC实现。现在项目还没有时间彻底重构,之前是不确定EL表达式能否满足我的逻辑,时间紧,需求不是很明确,导致MVC结构有点混乱,后期维护成本非常大。以后要注意:1、需求要尽量明确2、初期架构非常重要3、重构+解耦。
<template> <div style="margin: 20px auto; width: 80%"> <div class="card"> <div style="font-size: 20px; font-weight: bold; margin-bottom: 20px">账户充值</div> <el-form :model="form" label-width="100px"> <el-form-item label="当前余额"> <span style="color: #ff5000; font-weight: bold">¥{{ formatBalance(user.balance) }}</span> </el-form-item> <el-form-item label="充值金额" required> <el-input-number v-model="form.amount" :min="1" :step="100" controls-position="right" ></el-input-number> </el-form-item> <el-form-item label="支付方式" required> <el-radio-group v-model="form.paymentMethod"> <el-radio label="alipay">支付宝</el-radio> <el-radio label="wechat">微信支付</el-radio> <el-radio label="bank">银行卡</el-radio> </el-radio-group> </el-form-item> <el-form-item> <el-button type="primary" @click="submit">确认支付</el-button> </el-form-item> </el-form> </div> </div> </template> <script setup> import {ref, reactive} from 'vue' import request from '@/utils/request.js' import {ElMessage} from 'element-plus' import {useRouter} from 'vue-router' const router = useRouter() // 修复:确保正确解析 localStorage const user = ref(JSON.parse(localStorage.getItem('xm-user') || '{}') // 添加一个格式化余额的方法 const formatBalance = (balance) => { if (balance === null || balance === undefined) { return '0.00' } // 确保 balance 是数字 const num = Number(balance) if (isNaN(num)) { return '0.00' } return num.toFixed(2) } const form = reactive({ amount: 100, paymentMethod: 'alipay' }) const submit = () => { if (!form.amount || form.amount <= 0) { ElMessage.warning('请输入充值金额') return } // 调用充值API request.post('/user/recharge', { userId: user.value.id, amount: form.amount }).then(res => { if (res.code === '200') { ElMessage.success('充值成功') // 更新本地用户信息 request.get('/user/info').then(res => { if (res.code === '200') { localStorage.setItem('xm-user', JSON.stringify(res.data)) user.value = res.data // 更新本地用户对象 router.push('/front/home') } }) } else { ElMessage.error(res.msg) } }) } </script>找出错误
最新发布
08-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值