无法将jsp中的对象转换为java对象

时间:2015-12-02 15:06:41

标签: java jsp

我不能让这个工作,我不知道为什么......

  • 在我的.jsp内部我想检查执行用户是否有足够的权限这样做。
  • 来自类用户的用户对象是会话属性之一
  • 在我的.jsp文件中,我从会话中获取了对象
  • 然后我将其投入用户
  • 然后我可以访问其存储的值(这是一个数组列表)

  • 然后,当我去测试我的代码时,我得到下面列出的错误。

任何想法如何解决这个问题??

user_management.jsp

<% 
    User user = (User) session.getAttribute("obj_user");
    boolean test = user.oe_fac_role_right.get(2).get(0).equals(1);
    if (test) { 
%>
- some html code will be displayed here is the user is allowed to see it
<%  }  %>

用户类

public class User {
    int user_id;
    String username;
    List<List<Integer>> oe_fac_role_right = new ArrayList<List<Integer>>(4);

    public User(){}

    ....
    ....
}

在登录类中创建用户对象:

User user = new User(user_id, username, user_rights);

将用户对象传递给会话:

session.setAttribute("obj_user", user);

来自Netbeans的错误消息

 An error occurred at line: 14 in the jsp file: /user_management.jsp
 user cannot be resolved to a type

 Line 14 in this case is: User user = (User) session.getAttribute("obj_user");

2 个答案:

答案 0 :(得分:2)

您的专栏用户以小写字母开头,但课程名称为用户,以大写字母开头。

变化

user user = (user) session.getAttribute("obj_user");

User user = (user) session.getAttribute("obj_user");

还要公开您的课程,并在jsp中导入您的课程,如下所示

<%@ page import="yourPackage.User%>

如果这不起作用,请告诉我。

答案 1 :(得分:2)

  

它没有任何导入,因为这些类都在默认包中,因此它们应该是可访问的

<强>不正确即可。未命名的包可从另一个包访问,并且无法导入未命名的包。

由于JSP在某个包中被编译为Java类,因此它永远无法访问未命名包中的类。

解决方案:您必须为User类声明一个包,然后在JSP中导入该类。

请参阅Import package with no name Java