ActionForm 封裝使用者請求參數,參數由 JSP 頁面表單欄位傳遞。必須確保 ActionForm 參數名稱與表單欄位名稱一致。
所有 ActionForm 定義於 struts-config.xml 的 <form-beans> 元素中。JSP 頁面輸入中文時,ActionForm 接收會產生亂碼。
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"),確保參數解碼正確。