🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.java
Article #141638

Struts - walidacja formularzy

#141638
From: wowerson
Date: Tue, 14 Oct 2008 21:37
114 lines
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-mail

Show 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