頁面包含「查詢頭部」與「明細列表」,列表每行可編輯。點擊「檢查」按鈕提交驗證後,頁面重載光標卻跳轉至列表首行或頭部,導致用戶無法定位剛編輯的行,體驗極差——尤其數據量大時。
在 Action 轉發前,根據當前編輯行索引動態拼接焦點字段名:
// 判斷是否在明細區(list_start_index > 0 表示明細行)
if (Integer.parseInt(nyuuryokuForm.getList_start_index()) > 0) {
nyuuryokuForm.setFocus_name(
nyuuryokuForm.getFocus_name() + "+" + nyuuryokuForm.getList_start_index()
);
} else {
nyuuryokuForm.setFocus_name(nyuuryokuForm.getFocus_name());
}
req.setAttribute("webvo", resultVo);
setForwardString(req, "success"); // 轉發
focus_name:前端 JS 讀取此屬性定位光標(如 document.forms[0][focus_name].focus())。list_start_index:標識當前操作行在列表中的索引(0 為頭部)。+ 為約定分隔符,前端解析時按 + 分割定位具體行與字段。無需修改前端框架,僅在服務端動態計算焦點標識,即可實現「驗證後光標精準回到編輯行」的交互體驗。