我已經創建了發送動作請求無法顯示的Struts2 fieldError
<meta http-equiv="REFRESH" content="0;url=./radioButton.action">
完成此請求被轉發到radio.jsp後的index.jsp。在這一個我顯示國家,州列表等。(所以我重定向這從index.jsp)。 現在我正在對此表格進行驗證。 我創建了正確的.xml爲的validation.When驗證失敗,那麼將被重定向到./radioButton.action
<result name="input" type="redirectAction">radioButton</result>
我創建延伸MethodFilterInterceptor,這種保持動作一個攔截器在after()方法中具有以下邏輯的會話範圍中的錯誤。
if (fieldErrors != null && fieldErrors.size() > 0)
{
Iterator it = fieldErrors.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
System.out.println(pairs.getKey() + " = " + pairs.getValue().toString());
}
session.put(FIELD_ERRORS_KEY, fieldErrors);
}
public static final String FIELD_ERRORS_KEY = "RedirectMessageInterceptor_FieldErrors";
我在我的.xml配置的攔截如下
<interceptors>
<interceptor name="redirectMessage" class="com.daya.message.RedirectMessageInterceptor" />
<interceptor-stack name="sessionStack">
<interceptor-ref name="redirectMessage" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptor-stack>
</interceptors>
我收到錯誤消息,我的控制檯上befor投入會話範圍。在控制檯打印輸出是
userName = [User Name is required to login]
password = [Password is required to login]
我使用以下標記來顯示所述字段錯誤
<s:fielderror></s:fielderror>
但在重定向之後的JSP(當驗證失敗)消息沒有得到顯示。
客戶端驗證工作正常。我禁用JavaScript檢查服務器端驗證
你如何從會話中再次獲取消息?我不明白你爲什麼要複製現有的功能。 – 2012-04-26 13:01:44