首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JSP EL 表達式無法讀取自定義對象屬性:缺少 Getter 方法

     編輯:程式設計綜合問答

問題現象

Servlet 中 request.setAttribute("user", user),JSP 用 ${requestScope.user.name} 顯示空白,${requestScope.user} 顯示 web.User@2047968c。

根本原因

EL 表達式 ${user.name} 依賴 JavaBeans 規範,需類提供 public String getName() 方法。public String name 僅是欄位,不被 EL 解析器識別。

修正 User 類

public class User {
    private String name;
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
}

驗證

重新部署後,${requestScope.user.name} 正確輸出 a。

補充說明

  • EL 也支援 Map、List、陣列的鍵/索引存取(${map.key}、${list[0]})。
  • 若屬性為 boolean isValid,Getter 應為 isValid()(而非 getValid())。
  • JSTL <c:out value="${user.name}" /> 可防 XSS,建議常用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved