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 specifiedjava.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

解决方案 »

  1.   

    把这段代码换成  ${requestScope.user.userName} // 最好指定查找范围,可以提高查找效率
      

  2.   


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

  3.   


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

  4.   

    el去取的表达式值的时候就是通过调用你的get方法实现的,所以在使用el的时候直接用${对象名(即你存储的user).属性名(即你书写的private属性,但是必须有get方法)}。
      

  5.   

    楼上说的对,el本身就会调用get方法。
    如果你非要加上get,可以用<%
    user.getUserName()
    %>