簡體   English   中英

無法將JSP中的對象轉換為Java對象

[英]can not cast object in jsp to java object

我無法正常工作,我也不知道為什么...

  • 在我的.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");

您的行有以小寫字母開頭的用戶 ,但類名是以大寫字母開頭的用戶

更改

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

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

也將您的班級公開,並按以下方式在jsp中導入班級

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

如果這不起作用,請告訴我。

它沒有任何導入,因為所有類都在默認軟件包中,因此它們應該可以訪問

不正確 無法從另一個程序包訪問未命名的程序包,並且無法導入未命名的程序包。

由於JSP在某個程序包中被編譯為Java類,因此它永遠無法訪問未命名程序包中的類。

解決方案:您必須為User類聲明一個包,然后將該類導入JSP。

請參閱導入不帶Java名稱的軟件包

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM