Hallo Leute,
ich bin gerade beim Einstieg in Stuts 2 und habe mit diversen Problemen zu tun. Ich habe gesehen, dass es hier Leute gibt die sich wohl damit schon etwas länger beschäftigen und mir evtl. helfen können.
Nun zu meinem Problem, bzw. Problemen .
erstes Problem:
Ich habe mich so ein wenig an die Beispiele von Struts2/ Example gehalten.
- Ich habe meine JSP geschieben, erstmal recht einfach.
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Search</title>
</head>
<body>
<s:form action="Search">
<s:textfield label="upper Range" key="upperRange"/>
<s:textfield label="lower Range" key="lowerRange"/>
<s:submit/>
</s:form>
</body>
</html>
- dann habe ich die Action geschrieben
public class Search extends ActionSupport {
private String upperRange, lowerRange;
setter&getter...
public String execute() throws Exception{
return SUCCESS;
}
public void validate(){
if( getLowerRange() == null || getLowerRange().isEmpty() ){
addFieldError("lowerRange", getText("lowerRangeInfo"));
}
if( getUpperRange()== null || getUpperRange().isEmpty() ){
addFieldError("upperRange", getText("upperRangeInfo"));
}
}
}
- und die struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.configuratio.xml.reload" value = "true" />
<constant name="struts.enable.DynamicMethodInvocation" value = "false" />
<constant name="struts.url.includeParams" value = "none" />
<constant name="struts.i18n.encoding" value = "ISO-8859-1" />
<constant name="struts.devMode" value = "true" />
<!-- Configuration for the default package.-->
<!-- extends erweitert das neue packet und um das Struts Standard-Paket -->
<include file="struts-default.xml"/>
<include file="struts-plugin.xml"/>
<package name="meinProjekt" extends="struts-default">
<!-- Add your actions here -->
<action name="Search" class="com.t_systems.fiscmdb.presentation.actions.Search">
<result>Success.jsp </result>
<result name="input">Search.jsp </result>
</action>
</package>
</struts>
so und nun zum Problem
wenn ich die JSP aufrufe und ein Feld nicht eingebe, dann dann führt der die validate aus, aber im Eingabeformular ist der Wert den ich eingegeben habe nicht mehr drin, sondern es beide Felder leer.
Wenn ich das StrutsBlank ausprobiere steht da aber der Wert dann immer noch im Feld und ich muss nur das vergessene Feld neu füllen.
Warum ist das so
zweites Problem:
ich verwende eine Propertiesdatei für die Meldungen, nur werden diese nicht angesprochen und laut meiner Recherche sollte die Datei z.B. wie die Action Search und dann Endung properties heißen.
So, ich hoffe ich hab alles halbwegs verständlich erklärt.
Ich danke schonmal für die Mühen.
Gruß joschi
ich bin gerade beim Einstieg in Stuts 2 und habe mit diversen Problemen zu tun. Ich habe gesehen, dass es hier Leute gibt die sich wohl damit schon etwas länger beschäftigen und mir evtl. helfen können.
Nun zu meinem Problem, bzw. Problemen .
erstes Problem:
Ich habe mich so ein wenig an die Beispiele von Struts2/ Example gehalten.
- Ich habe meine JSP geschieben, erstmal recht einfach.
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Search</title>
</head>
<body>
<s:form action="Search">
<s:textfield label="upper Range" key="upperRange"/>
<s:textfield label="lower Range" key="lowerRange"/>
<s:submit/>
</s:form>
</body>
</html>
- dann habe ich die Action geschrieben
public class Search extends ActionSupport {
private String upperRange, lowerRange;
setter&getter...
public String execute() throws Exception{
return SUCCESS;
}
public void validate(){
if( getLowerRange() == null || getLowerRange().isEmpty() ){
addFieldError("lowerRange", getText("lowerRangeInfo"));
}
if( getUpperRange()== null || getUpperRange().isEmpty() ){
addFieldError("upperRange", getText("upperRangeInfo"));
}
}
}
- und die struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.configuratio.xml.reload" value = "true" />
<constant name="struts.enable.DynamicMethodInvocation" value = "false" />
<constant name="struts.url.includeParams" value = "none" />
<constant name="struts.i18n.encoding" value = "ISO-8859-1" />
<constant name="struts.devMode" value = "true" />
<!-- Configuration for the default package.-->
<!-- extends erweitert das neue packet und um das Struts Standard-Paket -->
<include file="struts-default.xml"/>
<include file="struts-plugin.xml"/>
<package name="meinProjekt" extends="struts-default">
<!-- Add your actions here -->
<action name="Search" class="com.t_systems.fiscmdb.presentation.actions.Search">
<result>Success.jsp </result>
<result name="input">Search.jsp </result>
</action>
</package>
</struts>
so und nun zum Problem
wenn ich die JSP aufrufe und ein Feld nicht eingebe, dann dann führt der die validate aus, aber im Eingabeformular ist der Wert den ich eingegeben habe nicht mehr drin, sondern es beide Felder leer.
Wenn ich das StrutsBlank ausprobiere steht da aber der Wert dann immer noch im Feld und ich muss nur das vergessene Feld neu füllen.
Warum ist das so
zweites Problem:
ich verwende eine Propertiesdatei für die Meldungen, nur werden diese nicht angesprochen und laut meiner Recherche sollte die Datei z.B. wie die Action Search und dann Endung properties heißen.
So, ich hoffe ich hab alles halbwegs verständlich erklärt.
Ich danke schonmal für die Mühen.
Gruß joschi