Hi,
ich habe ein gewaltiges Problem, an dem ich schon ziemlich lange jetzt sitzte.
Ich habe eine StrutsAction, die mir einen Wert an an eine Methode über ein
Interface weiterreichen soll.
Das Interface implementiert alle Methoden seiner Klasse und läuft prima.
Die StrutsAction extends einer AbstractBaseForm, die sich um die initialisierung
des interfaces kümmert. Source folgt:
Baseform
Action
Immer wenn ich die ActionForward execute aufrufe bekomme ich die
NullPointerException genau in der Zeile list = getClinic.findOwner(oForm.getlastName());
oForm.getlastName ist definitiv nicht leer, weil ich den value mit FormValidation überprüfe, aber auch mir wie ihr seht mit dem logging mir
den Inhalt ausgeben lasse.
Ich hoffe mir kann jemand helfen, ich bin echt am verzweifeln.
Vielen dank im voraus.
Ciao
ich habe ein gewaltiges Problem, an dem ich schon ziemlich lange jetzt sitzte.
Ich habe eine StrutsAction, die mir einen Wert an an eine Methode über ein
Interface weiterreichen soll.
Das Interface implementiert alle Methoden seiner Klasse und läuft prima.
Die StrutsAction extends einer AbstractBaseForm, die sich um die initialisierung
des interfaces kümmert. Source folgt:
Baseform
Code:
/*
* Created on May 26, 2004
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package petclinic.struts.form;
/**
* @author johannes.hiemer
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
import org.apache.log4j.Category;
import org.apache.struts.action.Action;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContextException;
import petclinic.service.IClinic;
abstract public class AbstractBaseForm extends Action implements InitializingBean {
private IClinic clinic;
Category cat = Category.getInstance(AbstractBaseForm.class.getName());
public void setClinic(IClinic clinic) {
this.clinic = clinic;
}
public IClinic getClinic() {
return this.clinic;
}
public void afterPropertiesSet() throws Exception {
if (clinic == null)
throw new ApplicationContextException("Must set clinic bean property on " + getClass());
}
}
Action
Code:
/*
* Created on May 26, 2004
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package petclinic.struts.action;
/**
* @author johannes.hiemer
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Category;
import org.apache.struts.Globals;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import petclinic.struts.form.AbstractBaseForm;
import petclinic.struts.form.OwnerForm;
public class OwnerAction extends AbstractBaseForm {
Category cat = Category.getInstance(AbstractBaseForm.class.getName());
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
ActionErrors errors = new ActionErrors();
List list;
OwnerForm oForm = (OwnerForm) form;
/** Logging the entered values, after that NullPointerException **/
cat.info("Retrieving owner form value...");
cat.info("Value:"+oForm.getlastName());
cat.info("Class: "+ getClinic().getClass().getMethods().toString());
list = getClinic.findOwner(oForm.getlastName());
if(list.size() < 1) {
errors.add(Globals.ERROR_KEY, new ActionError("error.owner.not.found"));
saveErrors(request, errors);
return mapping.getInputForward();
}
if(list.size() > 1) {
return mapping.findForward("showOwner");
}
return mapping.findForward("showOwner");
}
}
Immer wenn ich die ActionForward execute aufrufe bekomme ich die
NullPointerException genau in der Zeile list = getClinic.findOwner(oForm.getlastName());
oForm.getlastName ist definitiv nicht leer, weil ich den value mit FormValidation überprüfe, aber auch mir wie ihr seht mit dem logging mir
den Inhalt ausgeben lasse.
Ich hoffe mir kann jemand helfen, ich bin echt am verzweifeln.
Vielen dank im voraus.
Ciao