Frage

Ich versuche, eine Login-Seite in Struts zu machen. Die Idee ist, zu überprüfen, ob der Benutzer vorhanden ist, usw., und dann, wenn es ein Fehler, Rückkehr zur Login-Seite mit den Fehlern in rot (die typische Anmeldung oder jede Formularseite Validierung).

Ich würde gerne wissen, ob jemand ein Fehler-Management-Tutorial in Struts kennt. Ich bin auf der Suche speziell für ein Tutorial (oder Beispiel) des

<html:errors>

-Tag, das ich denke, dass mein Problem lösen.

War es hilfreich?

Lösung

Hier ist eine kurze Zusammenfassung. Sie haben eine ActionForm Klasse, sagen MyForm:

<form-bean name="myForm" type="myapp.forms.MyForm"/>

Sie haben eine Action Klasse, sagen MyAction:

<action path="/insert" type="myapp.actions.MyAction" name="myForm"
   input="/insert.jsp" validate="true" />
  <forward name="success" path="/insertDone.jsp"/>
</action>

"name" in der Aktion bezieht sich in der Form-Bean "name". Da haben Sie Ihre validate="true" Klasse ActionForm MyForm muss validate() Methode definieren, die automatisch aufgerufen wird:

public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
  ActionErrors errors = new ActionErrors();
  if ((username==null) || (username.length() < 1)) 
      errors.add("username", new ActionError("error.username.required"));
  return errors;
}

Wenn es eine leere Action kehrt Objekt, Struts gehen auf MyAction.execute () aufzuzurufen. Andernfalls Struts zeigt /insert.jsp (denn das ist der Eingang = Parm Sie gab) und erweitert das html.errors Tag Ihre Fehler von Action angezeigt werden soll.

Andere Tipps

Hier ist eine: //struts.apache.org/1.3.5/struts-taglib/apidocs/org/apache/struts/taglib/html/package-summary.html#package_description

Hier bin ich davon aus Struts 1. Ich weiß nicht, ob es für Struts 2 geändert hat.

Sie können eine errors.header setzen und errors.footer in Ihre Nachricht Ressourcen-Datei:

errors.header=<h3><font color="red">Errors:</font></h3><ul>
errors.footer=</ul>

Die Kopf- und Fußzeilen werden nur angezeigt, wenn die Action Objekt Fehler in ihm hat.

In Ihrer Action-Klasse, dies zu tun:

ActionErrors errors = new ActionErrors();
if (badInput) {
  errors.add(ActionErrors.GLOBAL_ERROR,
    new ActionError("error.bad.input", badString);    // key in messages resource file
                                    // badString will replace {0} in message
}

Dann vor der Rückkehr:

saveErrors(request, errors);

Ihre Nachrichten Ressourcendatei:

error.bad.input=<li>Bad input:  '{0}' is invalid.</li>

Wenn nun der <html:errors/> Tag verarbeitet wird, es wird sich in:

<h3><font color="red">Errors:</font></h3><ul>
<li>Bad input: 'xxyyzzz' is invalid.<li>
</ul>

In Streben Aktion:

ActionErrors errors = new ActionErrors();
errors.add("", new ActionMessage("login.msg.err"));
saveErrors(request, errors);

Die "hello.msg.err" ist in MessageBundle.properties definieren

login.msg.err=Wrong user name or password

Sie JSP, Fehler werden durch h angezeigt werden: Fehler-Tag:

<h:errors/>

Dieses Video zeigt Ihnen Schritt für Schritt, und erklären Sie, all diese Dinge: https://youtu.be/YcCsJtqI72A

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top