报错信息:
解决办法:
1、查看对应的前台jsp页面。经过检查,发现jsp包没有导入,所以获取不到字段,也没有任何提示,很慌。。。哈哈哈
所以要导入jsp包:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
2、查看对应 Controller的返回参数,因为有个字符串不对,导致一直获取不到。
我是怎么知道第二步有错的,参考了下大佬的文章:链接如下
https://cloud.tencent.com/developer/article/1668611
- Controller代码:
// 跳转到修改页面
@RequestMapping("/toUpdate")
public String toUpdatePaper(int id, Model model) {
int books = addbookService.Querybookname(id);
model.addAttribute(“book”, books);
return “updatebook”;
}
3、请求成功
原因:
在使用el表达式获取具体属性时,只能用小写调用(即使实体类定义的属性有大写字母)
列如:
实体类属性如下,可以看到属性有大写字母
而且servlet返回的是一个集合plist
在jsp页面使用jstl以及el调用时
控制台报如标题所示异常
解决方案:
将需要调用的属性全部小写即可
注意:如果你设置了request.setAttribute(),如request.setAttribute(“empId”, empId);则使用el获取时,应写成 ${empId}。
也就是说,如果没有设置具体的属性,使用el获取时,通通用小写。反之,则需要按照request.setAttribute()第一个引号内设置的值原样获取。
坑太多了,慢慢踩。
2021-07-04 阴天 星期日