Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法将jsp中的对象强制转换为java对象_Java_Jsp - Fatal编程技术网

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

无法将jsp中的对象强制转换为java对象,java,jsp,Java,Jsp,我不能让这个工作,我不知道为什么 在my.jsp中,我想检查执行用户是否有足够的权限这样做 类user中的user对象是会话属性之一 在.jsp文件中,我从会话中获取对象 然后我将其转换为用户 然后我可以访问它的存储值(这是一个数组列表) 然后,当我去测试我的代码时,我得到下面列出的错误 你知道怎么解决这个问题吗 user_management.jsp <% User user = (User) session.getAttribute("obj_user"); bo

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

  • 在my.jsp中,我想检查执行用户是否有足够的权限这样做
  • 类user中的user对象是会话属性之一
  • 在.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
<%  }  %>
正在将用户对象传递到会话:

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");

您的行中有user以小写字母开头,但类名是user以大写字母开头

改变

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

还可以公开类,并在jsp中导入类,如下所示

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

您的行中有用户以小写字母开头,但类名是用户以大写字母开头

改变

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

还可以公开类,并在jsp中导入类,如下所示

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

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

不正确。无法从其他包访问未命名的包,并且无法导入未命名的包

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

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

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

不正确。无法从其他包访问未命名的包,并且无法导入未命名的包

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

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


请参阅。

jsp的导入部分看起来如何?第14行是:user user=(user)session.getAttribute(“obj_user”);我在登录类中创建user对象,如下所示:
user user=newuser(user\u id、username、user\u权限)之后,我将它放入带有
session.setAttribute(“obj_user”,user)的会话中供参考:根据,类名应以大写字母(
User
)开头:“类类型的名称应为描述性名词或名词短语,不要过长,大小写混合,每个单词的第一个字母大写。”我认为您应该在jsphow中像这样导入您使用的类。jsp的导入部分第14行是:user user=(user)session.getAttribute(“obj_user”);我在登录类中创建user对象,如下所示:
user user=newuser(user\u id、username、user\u权限)之后,我将它放入带有
session.setAttribute(“obj_user”,user)的会话中供参考:根据,类名应以大写字母(
User
)开头:“类类型的名称应为描述性名词或名词短语,不要过长,大小写混合,每个单词的第一个字母大写。”我认为您应该在jspdid中像这样导入您使用的类
,但是通过将我的所有类移动到一个包(在我的例子中是SSP),我会得到更多错误,并且应用程序将不再部署现在我只是将类用户移动到一个包中(其他类仍然在默认包中)但是我如何才能将一个类从默认包导入到新创建的包中(我必须从那里访问其他类)@Alkahna正如我在回答中所说的,您不能从未命名的包导入。未命名包仅用于整个程序位于未命名包中的小程序。如果您使用包(并且必须在webapp中使用),则所有类都必须在包中。我建议您将所有类保留在相应的包中。根本不维护默认包。并将访问修饰符设为public以访问不同包中的类。这样做了,但通过将我的所有类移动到一个包(在我的示例中为SSP),我会收到更多错误,并且应用程序将不再部署。现在,我只是将类用户移动到一个包中(其他类仍在默认包中)但是我如何才能将一个类从默认包导入到新创建的包中(我必须从那里访问其他类)@Alkahna正如我在回答中所说的,您不能从未命名的包导入。未命名包仅用于整个程序位于未命名包中的小程序。如果您使用包(并且必须在webapp中使用),则所有类都必须在包中。我建议您将所有类保留在相应的包中。根本不维护默认包。并将访问修饰符设为public,以访问不同包中的这些类。
<%@ page import="yourPackage.User%>