为了账号安全,请及时绑定邮箱和手机立即绑定

求解Servlet中的setAttribute和JSP中的EL表达式的问题

求解Servlet中的setAttribute和JSP中的EL表达式的问题

迷失代码林 2017-04-13 15:36:14
如题,我有点想不通,实体类中有用户类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的表达式。
查看完整回答
2 反对 回复 2017-04-14
  • 1 回答
  • 1 关注
  • 2323 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信