Rumah >Java >javaTutorial >Bagaimanakah Struts2 Mengendalikan Ralat Input dan Mengembalikan Keputusan INPUT?

Bagaimanakah Struts2 Mengendalikan Ralat Input dan Mengembalikan Keputusan INPUT?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-01 12:52:10250semak imbas

How Does Struts2 Handle Input Errors and Return an INPUT Result?

Bagaimanakah Input Result Berfungsi dalam Struts2?

Hasil INPUT Struts2 dicetuskan apabila pemintas aliran kerja mengesan ralat medan, sama ada daripada ralat penukaran atau pengesahan. Daripada menimbulkan pengecualian, ralat ini dianggap ralat input, jadi hasil INPUT dikembalikan untuk meminta pembetulan input pengguna.

Mengendalikan Ralat Penukaran / Pengesahan

Struts2's mekanisme pengendalian ralat melibatkan beberapa kunci langkah:

  1. Pemintas Parameter: Percubaan untuk menetapkan parameter. Jika pengecualian masa jalan berlaku semasa penukaran (cth., NumberFormatException), ia ditelan secara senyap atau dilog dengan pemberitahuan pembangun.
  2. Pemintas Ralat Penukaran: Mengenal pasti sebarang ralat penukaran dan menambahkan ralat medan pada ActionContext . Ia juga menyimpan nilai asal untuk memastikan ia dipaparkan kepada pengguna jika medan mengandungi ralat pengesahan.
  3. Pemintas Pengesahan: Melakukan pengesahan berdasarkan XML, anotasi atau kaedah tindakan. Jika pengesahan gagal, ia menambahkan ralat medan pada ActionContext untuk setiap medan yang tidak mematuhi.
  4. Pemintas Aliran Kerja: Menyemak ralat medan daripada kedua-dua penukaran dan pengesahan. Jika ralat wujud, ia mengembalikan hasil INPUT; jika tidak, ia diteruskan dengan pemintas seterusnya.

Untuk mendayakan mekanisme ini, pastikan pemintas berikut ditakrifkan dalam susunan yang betul:

<interceptor-ref name="params"/>
<interceptor-ref name="conversionError"/>
<interceptor-ref name="validation"/>
<interceptor-ref name="workflow"/>

Nota Tambahan pada Penukaran Integer

Untuk mengendalikan penukaran aksara bukan angka kepada sifar, elakkan menggunakan atribut nilai bersama-sama dengan pengambil yang mengembalikan jenis data int. Ini boleh menyebabkan ralat penukaran tambahan dan menghasilkan nilai 0. Sebaliknya, gunakan sintaks berikut:

<s:textfield name="myIntField"/>

Atau

<s:textfield name="myIntField" value="%{myIntField}"/>

Atas ialah kandungan terperinci Bagaimanakah Struts2 Mengendalikan Ralat Input dan Mengembalikan Keputusan INPUT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn