为什么model域中的数据在html页面没法展示?

在HTML页面中,使用Ajax请求接口并尝试在Model域设置数据后,发现页面无法正常显示这些数据。问题在于,EL表达式在页面初始化时运行,而Ajax异步请求发生在页面加载后。因此,EL表达式无法捕获到Ajax请求后的Model更新。解决方案包括在Ajax成功回调中使用JavaScript直接设置元素值,或者修改接口返回类型为字符串并在客户端处理。建议加强前端与后端交互的基础知识理解。

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

html 页面使用ajax请求接口 , 接口在model域中放入部分数据  , 然而 现在总算展示不出来
      
       @ResponseBody
@RequestMapping(value="/getDetails",method=RequestMethod.POST) 
public void details(HttpServletRequest req,Model mel){
String id = req.getParameter("id");
try{
Details del = deviceService.selectDetails(id);
mel.addAttribute("del", "aaaaaaa");   //import org.springframework.ui.Model;
}catch(Exception e){
logger.error("", e);
}
}

 

<input type='text' value='${del}' id='del'>

success:function(data){
$('#del').load(location.href + " #del");//局部刷新
}
试试这可不可以

还是不行啊!

你能改接口的返回类型吗,返回一个String,$("#del").val(data);

ajax请求的数据在页面使用el是获取不到的,只能是回调时在success方法中获取

擦 真是什么人都有啊  你TM用ajax请求后台 然后你想通过内置对象获取参数  你认为这可能吗 el表达式只能作页面跳转获取 你这估计拿一万年都拿不到 好好学基础吧

前后加载顺序问题,el表达式是页面初始化时就加载并找到request 里面相对应的,你是在页面初始化之后有调用异步请求,异步请求最大用处就是页面部分刷新,或者多次请求资源下载大量数组等,但不是整个页面重新请求,el表达式当然不会有效果,你可以直接用js

value前面少个th吧,应该是th:value

<input type='text' th:value='${del}' id='del'>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值