I have a Struts action form which contains a bean. I am trying to
display a bean retrieved from the database in this form using the
nested tag. Can anyone help me? I continue to get an error message
see end for stack trace.
Struts config
<form-bean name="newBean" type="com.NewFo rm" />
......
<action path="/new-action" type="com.NewAc tion"
name="newBean" scope="session" >
<forward name="blah" path="/New.jsp"/>
</action>
Bean
public class Program implements Serializable {
private int prg_pk;
private String prg_prog_name = null;
private Set courses;
getters()/setters()
Form
public class NewForm extends ActionForm {
private Program program;
/**
* Returns the program.
* @return Program
*/
public Program getTheProgram() {
return program;
}
/**
* Sets the program.
* @param program The program to set
*/
public void setTheProgram(P rogram program) {
this.program = program;
}
public void reset(ActionMap ping mapping, HttpServletRequ est
request) {
HttpSession session = request.getSess ion();
setTheProgram(( Program) session.getAttr ibute("PROGRAM" ));
}
}
JSP
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>
<nested:form action="/new-action.do">
<nested:nest property="progr am" >
<nested:write property="prg_p rog_name"/>
</nested:nest>
</nested:form>
Stack Trace
java.lang.NullP ointerException
at java.util.Hasht able.get(Hashta ble.java:315)
at org.apache.jasp er.runtime.Page ContextImpl.fin dAttribute(Page ContextImpl.jav a:303)
at org.apache.stru ts.util.Request Utils.lookup(Re questUtils.java :663)
at org.apache.stru ts.util.Request Utils.lookup(Re questUtils.java :710)
at org.apache.stru ts.taglib.bean. WriteTag.doStar tTag(WriteTag.j ava:290)
at org.apache.stru ts.taglib.neste d.bean.NestedWr iteTag.doStartT ag(Unknown
Source)
at org.apache.jsp. New$jsp._jspSer vice(New$jsp.ja va:114)
at org.apache.jasp er.runtime.Http JspBase.service (HttpJspBase.ja va:107)
at javax.servlet.h ttp.HttpServlet .service(HttpSe rvlet.java:853)
at org.apache.jasp er.servlet.JspS ervlet$JspServl etWrapper.servi ce(JspServlet.j ava:201)
at org.apache.jasp er.servlet.JspS ervlet.serviceJ spFile(JspServl et.java:381)
at org.apache.jasp er.servlet.JspS ervlet.service( JspServlet.java :473)
at javax.servlet.h ttp.HttpServlet .service(HttpSe rvlet.java:853)
at org.apache.cata lina.core.Appli cationFilterCha in.internalDoFi lter(Applicatio nFilterChain.ja va:247)
at org.apache.cata lina.core.Appli cationFilterCha in.doFilter(App licationFilterC hain.java:193)
at org.apache.cata lina.core.Stand ardWrapperValve .invoke(Standar dWrapperValve.j ava:243)
at org.apache.cata lina.core.Stand ardPipeline.inv okeNext(Standar dPipeline.java: 566)
at org.apache.cata lina.core.Stand ardPipeline.inv oke(StandardPip eline.java:472)
at org.apache.cata lina.core.Conta inerBase.invoke (ContainerBase. java:943)
at org.apache.cata lina.core.Stand ardContextValve .invoke(Standar dContextValve.j ava:190)
at org.apache.cata lina.core.Stand ardPipeline.inv okeNext(Standar dPipeline.java: 566)
at org.apache.cata lina.core.Stand ardPipeline.inv oke(StandardPip eline.java:472)
at org.apache.cata lina.core.Conta inerBase.invoke (ContainerBase. java:943)
at org.apache.cata lina.core.Stand ardContext.invo ke(StandardCont ext.java:2347)
at org.apache.cata lina.core.Stand ardHostValve.in voke(StandardHo stValve.java:18 0)
at org.apache.cata lina.core.Stand ardPipeline.inv okeNext(Standar dPipeline.java: 566)
at org.apache.cata lina.valves.Err orDispatcherVal ve.invoke(Error DispatcherValve .java:170)
at org.apache.cata lina.core.Stand ardPipeline.inv okeNext(Standar dPipeline.java: 564)
at org.apache.cata lina.valves.Err orReportValve.i nvoke(ErrorRepo rtValve.java:17 0)
at org.apache.cata lina.core.Stand ardPipeline.inv okeNext(Standar dPipeline.java: 564)
at org.apache.cata lina.valves.Acc essLogValve.inv oke(AccessLogVa lve.java:468)
at org.apache.cata lina.core.Stand ardPipeline.inv okeNext(Standar dPipeline.java: 564)
at org.apache.cata lina.core.Stand ardPipeline.inv oke(StandardPip eline.java:472)
at org.apache.cata lina.core.Conta inerBase.invoke (ContainerBase. java:943)
at org.apache.cata lina.core.Stand ardEngineValve. invoke(Standard EngineValve.jav a:174)
at org.apache.cata lina.core.Stand ardPipeline.inv okeNext(Standar dPipeline.java: 566)
at org.apache.cata lina.core.Stand ardPipeline.inv oke(StandardPip eline.java:472)
at org.apache.cata lina.core.Conta inerBase.invoke (ContainerBase. java:943)
at org.apache.cata lina.connector. http.HttpProces sor.process(Htt pProcessor.java :1027)
at org.apache.cata lina.connector. http.HttpProces sor.run(HttpPro cessor.java:112 5)
at java.lang.Threa d.run(Thread.ja va:479)
display a bean retrieved from the database in this form using the
nested tag. Can anyone help me? I continue to get an error message
see end for stack trace.
Struts config
<form-bean name="newBean" type="com.NewFo rm" />
......
<action path="/new-action" type="com.NewAc tion"
name="newBean" scope="session" >
<forward name="blah" path="/New.jsp"/>
</action>
Bean
public class Program implements Serializable {
private int prg_pk;
private String prg_prog_name = null;
private Set courses;
getters()/setters()
Form
public class NewForm extends ActionForm {
private Program program;
/**
* Returns the program.
* @return Program
*/
public Program getTheProgram() {
return program;
}
/**
* Sets the program.
* @param program The program to set
*/
public void setTheProgram(P rogram program) {
this.program = program;
}
public void reset(ActionMap ping mapping, HttpServletRequ est
request) {
HttpSession session = request.getSess ion();
setTheProgram(( Program) session.getAttr ibute("PROGRAM" ));
}
}
JSP
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>
<nested:form action="/new-action.do">
<nested:nest property="progr am" >
<nested:write property="prg_p rog_name"/>
</nested:nest>
</nested:form>
Stack Trace
java.lang.NullP ointerException
at java.util.Hasht able.get(Hashta ble.java:315)
at org.apache.jasp er.runtime.Page ContextImpl.fin dAttribute(Page ContextImpl.jav a:303)
at org.apache.stru ts.util.Request Utils.lookup(Re questUtils.java :663)
at org.apache.stru ts.util.Request Utils.lookup(Re questUtils.java :710)
at org.apache.stru ts.taglib.bean. WriteTag.doStar tTag(WriteTag.j ava:290)
at org.apache.stru ts.taglib.neste d.bean.NestedWr iteTag.doStartT ag(Unknown
Source)
at org.apache.jsp. New$jsp._jspSer vice(New$jsp.ja va:114)
at org.apache.jasp er.runtime.Http JspBase.service (HttpJspBase.ja va:107)
at javax.servlet.h ttp.HttpServlet .service(HttpSe rvlet.java:853)
at org.apache.jasp er.servlet.JspS ervlet$JspServl etWrapper.servi ce(JspServlet.j ava:201)
at org.apache.jasp er.servlet.JspS ervlet.serviceJ spFile(JspServl et.java:381)
at org.apache.jasp er.servlet.JspS ervlet.service( JspServlet.java :473)
at javax.servlet.h ttp.HttpServlet .service(HttpSe rvlet.java:853)
at org.apache.cata lina.core.Appli cationFilterCha in.internalDoFi lter(Applicatio nFilterChain.ja va:247)
at org.apache.cata lina.core.Appli cationFilterCha in.doFilter(App licationFilterC hain.java:193)
at org.apache.cata lina.core.Stand ardWrapperValve .invoke(Standar dWrapperValve.j ava:243)
at org.apache.cata lina.core.Stand ardPipeline.inv okeNext(Standar dPipeline.java: 566)
at org.apache.cata lina.core.Stand ardPipeline.inv oke(StandardPip eline.java:472)
at org.apache.cata lina.core.Conta inerBase.invoke (ContainerBase. java:943)
at org.apache.cata lina.core.Stand ardContextValve .invoke(Standar dContextValve.j ava:190)
at org.apache.cata lina.core.Stand ardPipeline.inv okeNext(Standar dPipeline.java: 566)
at org.apache.cata lina.core.Stand ardPipeline.inv oke(StandardPip eline.java:472)
at org.apache.cata lina.core.Conta inerBase.invoke (ContainerBase. java:943)
at org.apache.cata lina.core.Stand ardContext.invo ke(StandardCont ext.java:2347)
at org.apache.cata lina.core.Stand ardHostValve.in voke(StandardHo stValve.java:18 0)
at org.apache.cata lina.core.Stand ardPipeline.inv okeNext(Standar dPipeline.java: 566)
at org.apache.cata lina.valves.Err orDispatcherVal ve.invoke(Error DispatcherValve .java:170)
at org.apache.cata lina.core.Stand ardPipeline.inv okeNext(Standar dPipeline.java: 564)
at org.apache.cata lina.valves.Err orReportValve.i nvoke(ErrorRepo rtValve.java:17 0)
at org.apache.cata lina.core.Stand ardPipeline.inv okeNext(Standar dPipeline.java: 564)
at org.apache.cata lina.valves.Acc essLogValve.inv oke(AccessLogVa lve.java:468)
at org.apache.cata lina.core.Stand ardPipeline.inv okeNext(Standar dPipeline.java: 564)
at org.apache.cata lina.core.Stand ardPipeline.inv oke(StandardPip eline.java:472)
at org.apache.cata lina.core.Conta inerBase.invoke (ContainerBase. java:943)
at org.apache.cata lina.core.Stand ardEngineValve. invoke(Standard EngineValve.jav a:174)
at org.apache.cata lina.core.Stand ardPipeline.inv okeNext(Standar dPipeline.java: 566)
at org.apache.cata lina.core.Stand ardPipeline.inv oke(StandardPip eline.java:472)
at org.apache.cata lina.core.Conta inerBase.invoke (ContainerBase. java:943)
at org.apache.cata lina.connector. http.HttpProces sor.process(Htt pProcessor.java :1027)
at org.apache.cata lina.connector. http.HttpProces sor.run(HttpPro cessor.java:112 5)
at java.lang.Threa d.run(Thread.ja va:479)