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

JavaWeb 下拉選單取值失敗:EL 表達式與資料庫欄位名不匹配

     編輯:程式設計綜合問答

問題現象

JSP 頁面使用自定義標籤 <t:select name="category_id" datasource="${gory}">,後台已將查詢結果 List<HashMap> 放入 request 屬性 gory,但下拉選單無法顯示值。

根本原因

name="category_id" 指定的提交欄位名,與資料庫查詢返回的 Map Key(如 categoryId、id、category_id)不一致,導致標籤無法正確綁定顯示值與提交值。

解決步驟

  1. 檢查 SQL:select * from v_category 返回欄位名(如 category_id, category_name)。
  2. 確認標籤屬性:通常需指定 valueField、textField 對應 Map 的 Key。
  3. 修正 JSP:
    <t:select name="category_id" datasource="${gory}" valueField="category_id" textField="category_name" blanktext="-請選擇-"></t:select>

後台代碼參考

// Action/Controller
this.setResult("gory", this.service.loadGory(id));

// Service
public List loadGory(String id) { return this.dao.loadGory(id); }

// DAO (iBATIS)
public List loadGory(String id) { return this.select("goods.loadGory", id); }

// SQL Map
<select id="goods.loadGory" parameterClass="String" resultClass="HashMap">
    select category_id, category_name from v_category
</select>

總結

下拉選單綁定失敗多因「提交名」與「資料源 Key」不對應,檢查標籤文檔並明確指定 valueField/textField 即可解決。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved