无法将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 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%>