tigger
Semiprofi
Thread Starter
- Mitglied seit
- 01.02.2004
- Beiträge
- 8.496
Hallo,
ich arbeite momentan an einem Web Projekt, bei dem Struts 1.2.9 eingesetzt wird.
Ich bin momentan schon recht weit fortgeschritten, mir fehlt aber leider noch die Validierung von Eingabefeldern. Hierzu soll die validation.xml Datei zum Einsatz kommen, um den Quellcode nicht unnötig aufzublähen.
Nachdem, was ich bei Google gefunden habe, handelt es sich bei der Form Validierung leider um eine Sache, die nie ordentlich dokumentiert wurde und ich hab leider nur halbherzige Beispiele gefunden, die ich nicht zum Laufen gebracht habe.
Ich hoffe, hier kann mir jemand sagen, woran es liegt
Ich denke, am besten sieht man es an einer zusammengedampften Version meines Projektes, der eigentliche Quellcode innerhalb der Funktionen tut hier nichts zur Sache, da der soweit funktioniert
Also fangen wir mal an
Es handelt sich um ein Dynamic Web Project, erstellt mit der Entwicklungsumgebung Eclipse 3.2
im Ordner src hab ich folgende Actions
LoginAction.java
RK_DRA_Action.java
als wichtigste Funktionen wohl view und unspecified, der Rest sind eigene Actions und weichen mit dem Namen auch Standards wie execute ab, es sind also nur view und unspecified, die aus der DispatchAction vorgegeben werden
Als Form Klasse zum Aufnehmen der Variablen aus meiner jsp gibt es folgende Klasse (vereinfacht auf 1 Feld)
RK_DRA_Form.java
das sollte soweit als Infos zu dem src Ordner reichen
Weiter geht es in public_html, wo die jsp zur Anzeige liegen bzw. in WEB-INF unter anderem noch die struts-config.xml, die validation.xml und die validation-rules.xml
fangen wir mit der jsp an
RK_Dienstreise.jsp
error.testfeld ist in den ApplicationRessources.Properties definiert und soll ausgegeben werden, wenn ein Fehler auftritt
und nun im Ordner WEB-INF:
struts-config.xml
Das Plugin in der Struts Config soll ja die Validierung im Projekt ermöglichen.
Nun noch die validation.xml
Die validation-rules.xml sollte ja Standard sein, die füg ich nicht hier ein
Die Standard Error Message aus der validation-rules.xml stehen auch in den ApplicationRessources.properties
Wenn ich mein Projekt nun starte, funktioniert meine erste Seite mit der DemoLogin Action noch und wenn das Ausführen der view der RK_DRA_Action folgen sollte, kommt eine Fehlermeldung, dass die dazugehörige Action RK_DRA_Action nicht gefunden wurde.
Sobald ich die Validierung wieder rausnehme, geht alles prima
Das ganze läuft über einen lokalen Tomcat Server und geht soweit auch ganz gut ab, nur die Validierung bereitet mir noch Kopfschmerzen
Ich hoffe, jemand kann aus der Ferne was damit anfangen
ich arbeite momentan an einem Web Projekt, bei dem Struts 1.2.9 eingesetzt wird.
Ich bin momentan schon recht weit fortgeschritten, mir fehlt aber leider noch die Validierung von Eingabefeldern. Hierzu soll die validation.xml Datei zum Einsatz kommen, um den Quellcode nicht unnötig aufzublähen.
Nachdem, was ich bei Google gefunden habe, handelt es sich bei der Form Validierung leider um eine Sache, die nie ordentlich dokumentiert wurde und ich hab leider nur halbherzige Beispiele gefunden, die ich nicht zum Laufen gebracht habe.
Ich hoffe, hier kann mir jemand sagen, woran es liegt
Ich denke, am besten sieht man es an einer zusammengedampften Version meines Projektes, der eigentliche Quellcode innerhalb der Funktionen tut hier nichts zur Sache, da der soweit funktioniert
Also fangen wir mal an
Es handelt sich um ein Dynamic Web Project, erstellt mit der Entwicklungsumgebung Eclipse 3.2
im Ordner src hab ich folgende Actions
LoginAction.java
RK_DRA_Action.java
als wichtigste Funktionen wohl view und unspecified, der Rest sind eigene Actions und weichen mit dem Namen auch Standards wie execute ab, es sind also nur view und unspecified, die aus der DispatchAction vorgegeben werden
Code:
public class RK_DRA_Action extends DispatchAction {
public ActionForward view (ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws
IOException, ServletException {
...
return (mapping.findForward("success"));
}
public ActionForward unspecified(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
...
return this.view(mapping, form, request, response);
}
Als Form Klasse zum Aufnehmen der Variablen aus meiner jsp gibt es folgende Klasse (vereinfacht auf 1 Feld)
RK_DRA_Form.java
Code:
public class RK_DRA_Form extends ValidationForm {
private String testfeld = "";
public ActionErrors validate( ActionMapping mapping, HttpServletRequest
request){
ActionErrors result = super.validate(mapping, request);
return result;
}
}
das sollte soweit als Infos zu dem src Ordner reichen
Weiter geht es in public_html, wo die jsp zur Anzeige liegen bzw. in WEB-INF unter anderem noch die struts-config.xml, die validation.xml und die validation-rules.xml
fangen wir mit der jsp an
RK_Dienstreise.jsp
Code:
<html>
<head><title>test</title></head>
<body>
<html:form action="RK_DRA_Action.do" method="post">
<html:text property="testfeld" />
<html:errors property="error.testfeld" />
<html:submit>klick</html:submit>
</html:form>
error.testfeld ist in den ApplicationRessources.Properties definiert und soll ausgegeben werden, wenn ein Fehler auftritt
und nun im Ordner WEB-INF:
struts-config.xml
Code:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="RK_DRA_Form" type="RK_DRA_Form"/>
</form-beans>
<action-mappings>
<action path="/DemoLogin" type="DemoLoginAction">
<forward name="success" path="/LoginAction.do"/>
</action>
<action name="RK_DRA_Form" path="/RK_DRA_Action" type="RK_DRA_Action" parameter="action" unknown="false">
<forward name="success" path="/RK_Dienstreise.jsp"/>
</action>
<action path="/LoginAction" type="LoginAction">
<forward name="dozent" path="/RK_DRA_Action.do"/>
</action>
</action-mappings>
<message-resources parameter="ApplicationResources"/>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validator.xml"/>
</plug-in>
</struts-config>
Das Plugin in der Struts Config soll ja die Validierung im Projekt ermöglichen.
Nun noch die validation.xml
Code:
<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
<form-validation>
<formset>
<form name="RK_DRA_Form">
<field property="testfeld" depends="required">
<arg0 key="testfeld" resource="false"/>
</field>
</form>
</formset>
</form-validation>
Die validation-rules.xml sollte ja Standard sein, die füg ich nicht hier ein
Die Standard Error Message aus der validation-rules.xml stehen auch in den ApplicationRessources.properties
Wenn ich mein Projekt nun starte, funktioniert meine erste Seite mit der DemoLogin Action noch und wenn das Ausführen der view der RK_DRA_Action folgen sollte, kommt eine Fehlermeldung, dass die dazugehörige Action RK_DRA_Action nicht gefunden wurde.
Sobald ich die Validierung wieder rausnehme, geht alles prima
Das ganze läuft über einen lokalen Tomcat Server und geht soweit auch ganz gut ab, nur die Validierung bereitet mir noch Kopfschmerzen
Ich hoffe, jemand kann aus der Ferne was damit anfangen
Zuletzt bearbeitet: