如题,我有点想不通,实体类中有用户类Users,里面的属性都是私有属性,必须通过get和set方法取值和赋值。在用户登录页面获取用户输入的用户名和密码提交到DoLoginServlet,与数据库中的用户名和密码匹配成功后保存到用户类的一个实例logUser中,并将该返回的用户实例保存到request.getSession().setAttribute("user",logUser)中,然后request.getRequestDispatcher("welcome.jsp").forward(request, response);转发到welcome.jsp中,关键来了,在welcome.jsp中使用EL表达式读取时,${user.getUserName()}报错org.apache.jasper.JasperException: /welcome.jsp(22,59) The function getUserName must be used with a prefix when a default namespace is not specified,我以为是没将用户类导入导致的,然后我试了下${user}是可以读出对象,再试着${user.userName}果然就正确 显示用户名了,为什么?这属性是私有的,求解!!!
1 回答
已采纳
亚努人
TA贡献58条经验 获得超75个赞
属性是私有的没错,但是EL表达式底层的实现就是通过属性的get方法获取属性的值,在使用的时候,这一特性被封装了,直接用对象.属性就可以获取值了,这就是EL表达式的方便之处,否则还不如直接用jsp的表达式。
- 1 回答
- 1 关注
- 2323 浏览
添加回答
举报
0/150
提交
取消