Strutsリファレンス(逆引き)

Strutsリファレンス
 
Web struts.wasureppoi.com
同じパラメータ名の入力フィールドを別々に強調する(errorKey)
スポンサード リンク

validateや、アクションクラスのsaveErrors()メソッドでは、エラーメッセージはrequestスコープにkeyがGlobals.ERROR_KEYで登録されます。

その為、errorStyleなどを使用して入力フィールドを強調する場合、同じJSPの異なるフォームに同じパラメータ名のフィールドが存在すると、両方とも強調されてしまいます。

しかしこの問題は、入力フィールド別に異なるkeyでrequestスコープに登録することにより防ぐことができます。


JSPでは、入力フィールドに、requestスコープにエラーメッセージを登録するkeyを、errorKey属性で指定します。
JSPの実装例

<%@ page pageEncoding = "Shift_JIS" %>
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>

<html><body>

<html:errors />

<html:form action="/error_key_memer_input" >

  ID  <html:text errorKey="memberKey"
             property="userId" size="15" maxlength="15" errorStyle="background-color:red" />
   <br><br>

  氏名  <html:text errorKey="memberKey"
             property="userName" size="15" maxlength="15" errorStyle="background-color:red" />
   <br><br>

   <html:submit property="submit">送信</html:submit>
</html:form>

<html:form action="/error_key_memer_input" >

   ID  <html:text errorKey="adminKey"
            property="userId" size="15" maxlength="15" errorStyle="background-color:red" />
   <br><br>

   <html:submit property="submit">送信</html:submit>
</html:form>

</body></html>



スポンサード リンク


アクションクラスでは、エラーメッセージを、任意のkeyでスコープrequestセッションに登録します。
validateの場合は、アクションフォームのvalidateメソッドで同様に、任意のkeyでスコープrequestセッションに登録します。
アクションクラスの実装例

public ActionForward execute(ActionMapping mapping,
                   ActionForm form,
                   HttpServletRequest request,
                   HttpServletResponse response) {

   // エラー情報生成
  ActionMessages errors = new ActionMessages();
  errors.add("userId", new ActionMessage("errors.required","ユーザーID"));
  errors.add("userName", new ActionMessage("errors.invalid","名称"));

   //エラー情報をセッションに保存する。
  request.setAttribute("memberKey", errors);

  //エラー情報をセッションに保存する。
  saveErrors(request, errors);

  return mapping.findForward("success");
}



画面イメージ



スポンサード リンク


validatorエラーのエラーメッセージの表示<html:errors>
アクションクラスで生成したエラーのエラーメッセージを表示する<html:errors>
エラーメッセージにヘッダーとフッターを表示する<html:errors>
エラーのあった入力フィールドを強調する
同じパラメータ名の入力フィールドを別々に強調する(errorKey)
アクションクラスで生成したメッセージを表示する<html:messages>

カスタムタグへ
忘れっぽいエンジニアのJakarta Strutsリファレンス TOPへ