Article View: pl.comp.lang.java
Article #141638Struts - walidacja formularzy
From: wowerson
Date: Tue, 14 Oct 2008 21:37
Date: Tue, 14 Oct 2008 21:37
114 lines
4177 bytes
4177 bytes
Witam
chciałbym mieć akcję, która wyswietla listę rekordów a kiedu kliknę w
jeden z nich wyświetli formularz edycji.
W tym momencie mam coś takiego
struts-config.xml
<form-beans>
<form-bean name="testForm" type="TestForm" />
</form-beans>
<action path="/test" type="TestAction" input="/form.jsp"
name="testForm" parameter="method" validate="true">
<forward name="save" path="/save.jsp" />
<forward name="list" path="/list.jsp" />
<forward name="form" path="/form.jsp" />
<forward name="error" path="/error.jsp" />
</action>
TestAction.java
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
public class TestAction extends DispatchAction {
public ActionForward save(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws
Exception {
String forward = "save";
try{
System.out.println("sejwujemy");
}
catch(Exception e){
e.printStackTrace();
}
return mapping.findForward(forward);
}
public ActionForward form(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws
Exception {
String forward = "form";
try{
System.out.println("formujemy");
}
catch(Exception e){
e.printStackTrace();
}
return mapping.findForward(forward);
}
public ActionForward list(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws
Exception {
String forward = "list";
try{
System.out.println("listujemy");
}
catch(Exception e){
e.printStackTrace();
}
return mapping.findForward(forward);
}
}
TestForm.java
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
public class TestForm extends ActionForm {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if(name == null || name.length() == 0){
errors.add("name", new ActionMessage("pusto"));
}
return errors;
}
}
no i pliki jsp - w nich za duzo nie ma
Problem jest nastepujący - kiedy klikam test.do?method=list struts
tworzy mi automatycznie formularz i wywołuje zdefiniowaną w nim metodę
validate:( Ponieważ przy wchodzeniu na widok listy nie ma przesylanych
żadnych danych z forma validacja jest niepoprawna i przenosi mnie na
formularz a nie na listę:( Jak tego uniknąć? jak zrobić coś takiego
żeby było ładnie?:)
Pozdrawiam
Technical Details
Message-ID:
<07c9c31f-8673-40b6-919c-f1f60c362c4d@p10g2000prf.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!tiscali!newsfeed1.ip.tiscali.net!proxad.net!feeder1-2.proxad.net!64.233.178.134.MISMATCH!postnews.google.com!p10g2000prf.googlegroups.com!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!tiscali!newsfeed1.ip.tiscali.net!proxad.net!feeder1-2.proxad.net!64.233.178.134.MISMATCH!postnews.google.com!p10g2000prf.googlegroups.com!not-for-mail From: wowerson <mtrelinski@interia.pl> Newsgroups: pl.comp.lang.java Subject: Struts - walidacja formularzy Date: Tue, 14 Oct 2008 14:37:27 -0700 (PDT) Organization: http://groups.google.com Lines: 117 Message-ID: <07c9c31f-8673-40b6-919c-f1f60c362c4d@p10g2000prf.googlegroups.com> NNTP-Posting-Host: 194.29.137.51 Mime-Version: 1.0 X-Trace: posting.google.com 1224020247 20782 127.0.0.1 (14 Oct 2008 21:37:27 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 14 Oct 2008 21:37:27 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: p10g2000prf.googlegroups.com; posting-host=194.29.137.51; posting-account=XCRRtwoAAAB_9UM5xaCfwA3jmzI_VDBd User-Agent: G2/1.0 X-HTTP-UserAgent: Opera/9.60 (Windows NT 5.1; U; pl) Presto/2.1.1,gzip(gfe),gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit