2017-06-22 4 views
0

Ok meinen Kopf gegen eine Mauer hier für die letzten 2 Tage als meine Validierungsnachricht auf der JSP wird nicht ausgegeben hämmern obwohl Validierung deutlich geschieht ...Struts 2.5: Validierung auftritt, aber keine Meldung angezeigt

Ich habe eingerichtet einfache Validierung für ein erforderliches Feld durch eine Aktion-validation.xml

<validators> 
    <field name="firstname"> 
     <field-validator type="requiredstring"> 
      <message>First name is required</message> 
     </field-validator> 
    </field> 
</validators> 

Action-Klasse ActionSupport und Schnittstellen ServletRequestAware erstreckt individualisierbar, Modellgetriebene

ausführen, Vorbereitung und Validierung von Methoden alle innerhalb der außer Kraft gesetzt haben werden Action-Klasse und ihre Konfiguration ist

<package name="main" namespace="/" extends="struts-default"> 
    <action name="myform" class="com.uk.MyFormAction"> 
     <interceptor-ref name="store"> 
      <param name="operationMode">STORE</param> 
     </interceptor-ref> 
     <interceptor-ref name="defaultStack" /> 

     <result name="update">s2/user.jsp</result> 
     <result name="input">s2/user.jsp</result> 
    </action> 
</package> 

welchen Gründen auch immer die Validierung von der validation.xml Datei in meinem JSP nicht ausgegeben alles wird innerhalb

<s:if test="hasActionErrors()"> 
    <s:actionerror /> 
</s:if> 

<s:textfield name="firstname" /> 

Es gibt andere Felder auf der Seite, ich bin Ich versuche nur, dass dieser zuerst funktioniert. Ich habe den Interceptor-Speicher hinzugefügt, der keinen Unterschied macht und mit dem type = "redirectAction" floss, aber wenn das zu meinem Eingabeergebnis hinzugefügt wird, bekomme ich eine Endlosschleife zwischen meiner Validierungs- und Vorbereitungsmethode für die Aktion bei der Einreichung ...

die tatsächliche Konfiguration, die ich bin sicher, ist richtig. Wenn das Feld vorhanden ist, wird die Übergabe korrekt ausgeführt. Wenn es jedoch leer ist, leitet die Struts-Datei zwar zurück zur JSP, gibt jedoch keine Fehlermeldungen aus.

Ich bin jetzt völlig aus Ideen, was könnte falsch sein, irgendwelche Anregungen bitte?

Edit: Übrigens, wenn ich eine addActionError() viamy Prüf-Funktion hinzufügen, zeigt es korrekt auf der Seite, aber auch hier die validation.xml Nachricht fehlt (und sollte nicht)

Auch wird struts.ui.theme=simple verwendet wird

Der nächste Beitrag, den ich finden kann, bezieht sich auf mein Problem kann found here sein, aber der Interceptor für Nachrichten scheint nicht zu speichern oder abzufangen meine Nachrichten ... Ich habe versucht, die Anzahl der ActionErrors durch Drucken der Größe der getActionErrors Sammlung auszugeben gibt 0 in meinen Ausführungs- und Validierungsfunktionen zurück ... Ich bin mir nicht sicher, ob das die validation.xml-Fehler zurückgeben sollte, wenn ich richtig arbeite y

+0

Validierungsmeldungen angezeigt werden, wenn Sie Standardthema verwenden. Siehe [diese Antwort] (https://stackoverflow.com/a/15496272/573032). –

+0

@RomanC Entschuldigung, das macht keinen Sinn für mich? Post scheint kein Thema zu referenzieren, meine Nachricht wird in die validation.xml geschrieben.Ich habe versucht, meine struts.properties zu entfernen, die es auf Standard setzt (xhtml?) Und keine Nachrichten erscheinen noch. Auch der Standard legt alle Arten von HTML um meine Formularelemente, die ich nicht möchte ... –

+0

Nun, es machte Sinn für andere, ich weiß nicht, warum Sie es nicht bekommen konnten. Ok, da deine Frage zu weit gefasst ist, kann ich dir keine gültige Antwort geben, also lass es dich selbst posten, wenn du es hast. –

Antwort

-1

Im Bereich I die Fehlermeldungen wollen ausgedruckt Ich habe den folgenden Code

<s:if test="hasActionErrors()"> 
    <s:actionerror /> 
</s:if> 

<s:if test="hasActionMessages()"> 
    <s:actionmessage /> 
</s:if> 

Nun, die oben sind für Action und ActionMessages nicht für Feldfehler. Was Sie auch brauchen, ist

<s:fielderror /> 

Wie ich Feldfehler über meine action-valiation.xml-Datei definiert habe!

über this post

half

Sie auch Standorte für bestimmte Felder definieren können. This post erklärt, dass ...

+0

Danke @AleksandrM! –

Verwandte Themen