读书人

在jsp也页面中经过el表达式去取出对

发布时间: 2012-12-14 10:33:07 作者: rapoo

在jsp也页面中,通过el表达式去取出对象中的get方法的时候报错
servelet中的代码:
List<UserVo> list=SqlDao.getAll(userEmail);

UserVo user=(UserVo)list.get(0);
//System.out.println(user.getRegDate());

request.setAttribute("user",user);

request.getRequestDispatcher("welecome.jsp").forward(request,response);
jsp中的代码:

${user.getUserName()} 通过传递过来的user这个对象,去操作它的get方法不行,会报错。

错误信息:
严重: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: /welecome.jsp(433,13) The function getUserName must be used with a prefix when a default namespace is not specified。。。。。。



java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)




[最优解释]

引用:
引用:
引用${user.getUserName()} 通过传递过来的user这个对象,去操作它的get方法不行,会报错。
把这段代码换成
Java code12${requestScope.user.userName} // 最好指定查找范围,可以提高查找效率



可是我要通过get方式取出来,那怎么办?


${logininfo.username} 是下面两句话的编码简化写法
LoginInfo logininfo =(LoginInfo)session.getAttribute(“logininfo”);
String username = logininfo.getUsername();
懂了吗?


[其他解释]
el去取的表达式值的时候就是通过调用你的get方法实现的,所以在使用el的时候直接用${对象名(即你存储的user).属性名(即你书写的private属性,但是必须有get方法)}。
[其他解释]
楼上说的对,el本身就会调用get方法。
如果你非要加上get,可以用

<%
user.getUserName()
%>
[其他解释]
引用
${user.getUserName()} 通过传递过来的user这个对象,去操作它的get方法不行,会报错。

把这段代码换成

${requestScope.user.userName} // 最好指定查找范围,可以提高查找效率

[其他解释]
引用:
引用${user.getUserName()} 通过传递过来的user这个对象,去操作它的get方法不行,会报错。
把这段代码换成
Java code12${requestScope.user.userName} // 最好指定查找范围,可以提高查找效率




可是我要通过get方式取出来,那怎么办?
[其他解释]
该回复于2012-11-13 01:02:47被管理员删除
[其他解释]
引用:
引用:引用:
引用${user.getUserName()} 通过传递过来的user这个对象,去操作它的get方法不行,会报错。
把这段代码换成
Java code12${requestScope.user.userName} // 最好指定查找范围,可以提高查找效率

……


非常感谢。问题已解决!

读书人网 >Java Web开发

热点推荐