Struts2 INPUT 結果:錯誤處理機制
Struts2 的INPUT 結果提供了一種無縫方法來處理轉換和驗證錯誤,而不會觸發異常。它的運作方式如下:
轉換錯誤處理
當輸入 String 而不是 int 時,參數攔截器會嘗試轉換。如果 Integer.parseInt() 遇到 NumberFormatException,則該例外狀況會在開發模式下被抑制,且錯誤訊息會加入 Action Errors 中。在生產模式下,異常會被靜默忽略。
轉換錯誤攔截器隨後檢查轉換錯誤。如果發現任何錯誤,則會新增欄位錯誤,並儲存輸入值,以便在後續請求期間顯示給使用者。
驗證錯誤處理
驗證攔截器是基於 XML 或註解執行必要的驗證。驗證錯誤將欄位錯誤新增至操作。這可確保向使用者顯示錯誤,並使用原始值重新填入表單。
工作流程與輸入結果
工作流程攔截器檢查欄位錯誤。遇到任何錯誤時,它會傳回 INPUT 結果。此結果重新顯示表單,保留原始輸入值和錯誤訊息。
處理字母和零
框架可以優雅地處理這種情況。當輸入字母字元時,轉換攔截器會保存其原始值。隨後的 Getter 將傳回原始值(例如“abc”),而不是其等價數字(例如“0”)。
排查轉換錯誤
如果未按預期工作,請確保攔截器的順序正確並驗證 value 屬性。如果可能的話,避免將其用於轉換目的。使用它來保存狀態,例如儲存佔位符值。
以上是Struts2的INPUT結果如何處理轉換和驗證錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!