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

JSP ActionForm 中文亂碼問題解決方案

     編輯:關於JSP

ActionForm 核心概念

ActionForm 封裝使用者請求參數,參數由 JSP 頁面表單欄位傳遞。必須確保 ActionForm 參數名稱與表單欄位名稱一致。

配置與亂碼成因

所有 ActionForm 定義於 struts-config.xml 的 <form-beans> 元素中。JSP 頁面輸入中文時,ActionForm 接收會產生亂碼。

兩種解決方案比較

  1. Action 類別中處理: 經測試不可行
  2. ActionForm 中處理: 經測試可行且方便

最佳實作:在 reset 方法設定編碼

public void reset(ActionMapping mapping, HttpServletRequest request) {
    try {
        request.setCharacterEncoding("GBK");
    } catch (Exception e) {
        // 處理例外
    }
}

驗證結果

在 Action 的 execute 方法中即可正確輸出中文屬性值:

public ActionForward execute(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response) {
    PersonalForm personalForm = (PersonalForm) form;
    System.out.println(personalForm.getUsername());
    System.out.println(personalForm.getPassword());
    return mapping.findForward("step2");
}

關鍵點: 在 ActionForm 的 reset 方法中設定 request.setCharacterEncoding("GBK"),確保參數解碼正確。

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