这是我的代码
首先是dingcang.jsp这是初始页面
是一个静态的三级级联菜单<%@ page contentType="text/html;charset=gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<html:html lang="true">
<head>
<title>一元软件订餐系统</title>
<script language="JavaScript"> function Dsy()
{
this.Items = {};
}
Dsy.prototype.add = function(id,iArray)
{
this.Items[id] = iArray;
}
Dsy.prototype.Exists = function(id)
{
if(typeof(this.Items[id]) == "undefined")
{
return false;
}
return true;
} function change(v)
{
var str="0";
for(i=0;i<v;i++)
{
str+=("_"+(document.getElementById(s[i]).selectedIndex-1));
};
var ss=document.getElementById(s[v]);
with(ss)
{
length = 0;
options[0]=new Option(opt0[v],opt0[v]);
if(v && document.getElementById(s[v-1]).selectedIndex>0 || !v)
{
if(dsy.Exists(str))
{
ar = dsy.Items[str];
for(i=0;i<ar.length;i++)
{
options[length]=new Option(ar[i],ar[i]);
}
if(v)options[1].selected = true;
}
}
if(++v<s.length)
{
change(v);
}
}
} var dsy = new Dsy(); dsy.add("0",["陶大商务套餐","马老七","食全食美"]); dsy.add("0_0",["汤类","商务套餐类","水煮类"]); dsy.add("0_0_0",["黄瓜皮蛋汤","萝卜排骨汤","香菇肉片汤","山药老鸭汤","杂菇汤","海蛎豆腐汤"]);
dsy.add("0_0_1",["肉末茄子饭","烧大排饭","椒盐秋刀鱼饭","回锅肉饭","卤鸡腿饭","梅菜扣肉饭","蜜汁排骨饭","盐水鸭饭"]);
dsy.add("0_0_2",["水煮花蛤","水煮鸭血","水煮肉片","水煮田鸡"]);
dsy.add("0_1",["泡粉类","商务套餐类","营养炖罐类","点心类","粥品类","拌菜类"]); dsy.add("0_1_0",["猪血泡粉","花蛤泡粉","青菜泡粉","酸菜泡粉","瘦肉泡粉","猪肝泡粉","猪血泡粉","牛肉泡粉","牛肚泡粉","罗汉肉泡粉",]);
dsy.add("0_1_1",["五彩炒米饭","青椒肉丝蛋炒饭","回锅肉饭","红烧鸡腿饭","梅菜扣肉饭","宫保鸡丁饭","台式卤肉饭","炸猪排饭","三杯鸡饭","红烧大排饭","可乐鸡翅饭","花生猪脚饭",]);
dsy.add("0_1_2",["目鱼炖龙骨","人参枸杞炖乌鸡","香菇莲子炖猪肚","黄豆炖猪脚","茶树老鸭汤","当归萝卜炖牛排"]);
dsy.add("0_1_3",["油条","海蛎饼","板栗肉粽","香菇肉粽","小笼包","蛋黄肉粽"]);
dsy.add("0_1_4",["拌春菜","拌青菜","拌空心菜","拌上海青","拌菠菜","拌猪血"]);dsy.add("0_2",["面类","套餐类","炖罐类"]); dsy.add("0_2_0",["牛肉面","花蛤面","牛肉丸面","罗汉肉面","农家鸡血面","酱烧猪脚面","酸菜牛肉面","香菇排骨面","目鱼筒骨面","台式海鲜面","香辣牛排面","沙茶牛肉面"]);
dsy.add("0_2_1",["烧烤全鱼饭","红焖牛排饭","稻香烤鸭饭","海蛎煎蛋饭","闽南卤肉饭","肉末茄子饭","烧大排饭","椒盐秋刀鱼饭","回锅肉饭","卤鸡腿饭","梅菜扣肉饭","蜜汁排骨饭","盐水鸭饭"]);
dsy.add("0_2_2",["目鱼炖龙骨","人参枸杞炖乌鸡","香菇莲子炖猪肚","黄豆炖猪脚","茶树老鸭汤","当归萝卜炖牛排","药膳乌鸡汤","海带排骨汤"]); </script> <script language = JavaScript> var s=["s1","s2","s3"];
var opt0 = ["餐厅","品种","菜品"];
function setup()
{
for(i=0;i<s.length-1;i++)
document.getElementById(s[i]).onchange=new Function("change("+(i+1)+")");
change(0);
}
</script>
</head><body onLoad="setup()" >
<center>
<jsp:include flush="true" page="../inc/template.jsp">
<jsp:param name="url" value="../"/>
</jsp:include>
<font face="楷体-GB2312" SIZE="5" color="red">请选择你喜欢的食物</font><br>
<html:form action="dingcang.do" method="post">
订餐人姓名:<html:text property="userid"></html:text><br>
选择餐厅:<select id="s1" name="canting"> </select><br>
选择种类:<select id="s2" name="pinzhong"> </select><br>
选择菜品:<select id="s3" name="caipin"> </select><br>
<html:submit value="订餐"></html:submit>
<html:reset value="重置"></html:reset>
</html:form></center>
</body>
</html:html>
dingcangform里面什么都没有设置
接下来是dingcangaction:/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.web.struts.action;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;import com.web.dao.IDingcangDAO;
import com.web.struts.form.DingcangForm;
import com.web.vo.Dingcang;/**
* MyEclipse Struts
* Creation date: 01-07-2006
*
* XDoclet definition:
* @struts.action path="/dingcang" name="dingcangForm" input="/form/dingcang.jsp" parameter="status" scope="request" validate="true"
*/
public class DingcangAction extends DispatchAction {
private IDingcangDAO idingcangdao;
/*
* Generated Methods
*/ public IDingcangDAO getIdingcangdao() {
return idingcangdao;
} public void setIdingcangdao(IDingcangDAO idingcangdao) {
this.idingcangdao = idingcangdao;
} /**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DingcangForm dingcangForm = (DingcangForm) form;// TODO Auto-generated method stub
String id=(String)request.getParameter("userid");
String canting=(String)request.getParameter("canting");
String pinzhong=(String)request.getParameter("pinzhong");
String caipin=(String)request.getParameter("caipin");
String dingcangtime=(String)request.getParameter("dingcangtime");
Dingcang dingcang = null;
try {
dingcang = new Dingcang();
dingcang.setCaipin(caipin);
dingcang.setCanting(canting);
dingcang.setDingcangtime(dingcangtime);
dingcang.setPinzhong(pinzhong);
dingcang.setUserid(id);
this.idingcangdao.register(dingcang);
} catch (Exception e) {
e.printStackTrace();
}
return mapping.findForward("dingcangsuccess");
}
}
然后是struts设置
<action
attribute="dingcangForm"
input="/form/dingcang.jsp"
name="dingcangForm"
parameter="status"
path="/dingcang"
scope="request"
type="com.web.struts.action.DingcangAction">
<forward name="dingcangsuccess" path="/jsp/dingcangsuccess.jsp"></forward>
</action>再下来是application设置
<bean id="idingcangdao" class="com.web.dao.IDingcangDAO" abstract="true"></bean>
<bean id="idingcangdaoimpl" class="com.web.impl.IDingcangDAOImpl" parent="idingcangdao">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate"/>
</property>
</bean>
<bean name="/jsp/dingcang" class="com.web.struts.action.DingcangAction">
<property name="idingcangdao">
<ref bean="idingcangdaoimpl"/>
</property>
</bean>
在dingcang.jsp页面一按提交 传入数据库中就报空指针错误
java.lang.NullPointerException
at com.web.struts.action.DingcangAction.execute(DingcangAction.java:65)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.web.filter.EncodingFilter.doFilter(EncodingFilter.java:22)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
第65行为dingcangaction中的this.idingcangdao.register(dingcang);第一次发帖提问 如果有什么不规范的地方 望原谅我用的是SSH整合框架
首先是dingcang.jsp这是初始页面
是一个静态的三级级联菜单<%@ page contentType="text/html;charset=gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<html:html lang="true">
<head>
<title>一元软件订餐系统</title>
<script language="JavaScript"> function Dsy()
{
this.Items = {};
}
Dsy.prototype.add = function(id,iArray)
{
this.Items[id] = iArray;
}
Dsy.prototype.Exists = function(id)
{
if(typeof(this.Items[id]) == "undefined")
{
return false;
}
return true;
} function change(v)
{
var str="0";
for(i=0;i<v;i++)
{
str+=("_"+(document.getElementById(s[i]).selectedIndex-1));
};
var ss=document.getElementById(s[v]);
with(ss)
{
length = 0;
options[0]=new Option(opt0[v],opt0[v]);
if(v && document.getElementById(s[v-1]).selectedIndex>0 || !v)
{
if(dsy.Exists(str))
{
ar = dsy.Items[str];
for(i=0;i<ar.length;i++)
{
options[length]=new Option(ar[i],ar[i]);
}
if(v)options[1].selected = true;
}
}
if(++v<s.length)
{
change(v);
}
}
} var dsy = new Dsy(); dsy.add("0",["陶大商务套餐","马老七","食全食美"]); dsy.add("0_0",["汤类","商务套餐类","水煮类"]); dsy.add("0_0_0",["黄瓜皮蛋汤","萝卜排骨汤","香菇肉片汤","山药老鸭汤","杂菇汤","海蛎豆腐汤"]);
dsy.add("0_0_1",["肉末茄子饭","烧大排饭","椒盐秋刀鱼饭","回锅肉饭","卤鸡腿饭","梅菜扣肉饭","蜜汁排骨饭","盐水鸭饭"]);
dsy.add("0_0_2",["水煮花蛤","水煮鸭血","水煮肉片","水煮田鸡"]);
dsy.add("0_1",["泡粉类","商务套餐类","营养炖罐类","点心类","粥品类","拌菜类"]); dsy.add("0_1_0",["猪血泡粉","花蛤泡粉","青菜泡粉","酸菜泡粉","瘦肉泡粉","猪肝泡粉","猪血泡粉","牛肉泡粉","牛肚泡粉","罗汉肉泡粉",]);
dsy.add("0_1_1",["五彩炒米饭","青椒肉丝蛋炒饭","回锅肉饭","红烧鸡腿饭","梅菜扣肉饭","宫保鸡丁饭","台式卤肉饭","炸猪排饭","三杯鸡饭","红烧大排饭","可乐鸡翅饭","花生猪脚饭",]);
dsy.add("0_1_2",["目鱼炖龙骨","人参枸杞炖乌鸡","香菇莲子炖猪肚","黄豆炖猪脚","茶树老鸭汤","当归萝卜炖牛排"]);
dsy.add("0_1_3",["油条","海蛎饼","板栗肉粽","香菇肉粽","小笼包","蛋黄肉粽"]);
dsy.add("0_1_4",["拌春菜","拌青菜","拌空心菜","拌上海青","拌菠菜","拌猪血"]);dsy.add("0_2",["面类","套餐类","炖罐类"]); dsy.add("0_2_0",["牛肉面","花蛤面","牛肉丸面","罗汉肉面","农家鸡血面","酱烧猪脚面","酸菜牛肉面","香菇排骨面","目鱼筒骨面","台式海鲜面","香辣牛排面","沙茶牛肉面"]);
dsy.add("0_2_1",["烧烤全鱼饭","红焖牛排饭","稻香烤鸭饭","海蛎煎蛋饭","闽南卤肉饭","肉末茄子饭","烧大排饭","椒盐秋刀鱼饭","回锅肉饭","卤鸡腿饭","梅菜扣肉饭","蜜汁排骨饭","盐水鸭饭"]);
dsy.add("0_2_2",["目鱼炖龙骨","人参枸杞炖乌鸡","香菇莲子炖猪肚","黄豆炖猪脚","茶树老鸭汤","当归萝卜炖牛排","药膳乌鸡汤","海带排骨汤"]); </script> <script language = JavaScript> var s=["s1","s2","s3"];
var opt0 = ["餐厅","品种","菜品"];
function setup()
{
for(i=0;i<s.length-1;i++)
document.getElementById(s[i]).onchange=new Function("change("+(i+1)+")");
change(0);
}
</script>
</head><body onLoad="setup()" >
<center>
<jsp:include flush="true" page="../inc/template.jsp">
<jsp:param name="url" value="../"/>
</jsp:include>
<font face="楷体-GB2312" SIZE="5" color="red">请选择你喜欢的食物</font><br>
<html:form action="dingcang.do" method="post">
订餐人姓名:<html:text property="userid"></html:text><br>
选择餐厅:<select id="s1" name="canting"> </select><br>
选择种类:<select id="s2" name="pinzhong"> </select><br>
选择菜品:<select id="s3" name="caipin"> </select><br>
<html:submit value="订餐"></html:submit>
<html:reset value="重置"></html:reset>
</html:form></center>
</body>
</html:html>
dingcangform里面什么都没有设置
接下来是dingcangaction:/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.web.struts.action;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;import com.web.dao.IDingcangDAO;
import com.web.struts.form.DingcangForm;
import com.web.vo.Dingcang;/**
* MyEclipse Struts
* Creation date: 01-07-2006
*
* XDoclet definition:
* @struts.action path="/dingcang" name="dingcangForm" input="/form/dingcang.jsp" parameter="status" scope="request" validate="true"
*/
public class DingcangAction extends DispatchAction {
private IDingcangDAO idingcangdao;
/*
* Generated Methods
*/ public IDingcangDAO getIdingcangdao() {
return idingcangdao;
} public void setIdingcangdao(IDingcangDAO idingcangdao) {
this.idingcangdao = idingcangdao;
} /**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DingcangForm dingcangForm = (DingcangForm) form;// TODO Auto-generated method stub
String id=(String)request.getParameter("userid");
String canting=(String)request.getParameter("canting");
String pinzhong=(String)request.getParameter("pinzhong");
String caipin=(String)request.getParameter("caipin");
String dingcangtime=(String)request.getParameter("dingcangtime");
Dingcang dingcang = null;
try {
dingcang = new Dingcang();
dingcang.setCaipin(caipin);
dingcang.setCanting(canting);
dingcang.setDingcangtime(dingcangtime);
dingcang.setPinzhong(pinzhong);
dingcang.setUserid(id);
this.idingcangdao.register(dingcang);
} catch (Exception e) {
e.printStackTrace();
}
return mapping.findForward("dingcangsuccess");
}
}
然后是struts设置
<action
attribute="dingcangForm"
input="/form/dingcang.jsp"
name="dingcangForm"
parameter="status"
path="/dingcang"
scope="request"
type="com.web.struts.action.DingcangAction">
<forward name="dingcangsuccess" path="/jsp/dingcangsuccess.jsp"></forward>
</action>再下来是application设置
<bean id="idingcangdao" class="com.web.dao.IDingcangDAO" abstract="true"></bean>
<bean id="idingcangdaoimpl" class="com.web.impl.IDingcangDAOImpl" parent="idingcangdao">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate"/>
</property>
</bean>
<bean name="/jsp/dingcang" class="com.web.struts.action.DingcangAction">
<property name="idingcangdao">
<ref bean="idingcangdaoimpl"/>
</property>
</bean>
在dingcang.jsp页面一按提交 传入数据库中就报空指针错误
java.lang.NullPointerException
at com.web.struts.action.DingcangAction.execute(DingcangAction.java:65)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.web.filter.EncodingFilter.doFilter(EncodingFilter.java:22)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
第65行为dingcangaction中的this.idingcangdao.register(dingcang);第一次发帖提问 如果有什么不规范的地方 望原谅我用的是SSH整合框架
public class IDingcangDAOImpl extends HibernateDaoSupport implements
IDingcangDAO { public void register(Dingcang dingcang) throws Exception {
super.getSession().save(dingcang);
} }好像听说super.getSession().save(dingcang); 这个是错误的
super.getSession.save();这个是不对的 是不是真的 望指教
<bean id="idingcangdao" class="com.web.dao.IDingcangDAO" abstract="true"></bean>
<bean id="idingcangdaoimpl" class="com.web.impl.IDingcangDAOImpl" parent="idingcangdao">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate"/>
</property>
</bean>
<bean name="/jsp/dingcang" class="com.web.struts.action.DingcangAction">
<property name="idingcangdao">
<ref bean="idingcangdaoimpl"/>
</property>
</bean>
红色那边好像有错,看一下吧~~~
这个是需要弄的!!我也遇到了同样的错误 java.lang.NullPointerException我的daoImpl用的是HibernateCallback,代码如下:
public class BuyInfoDAO extends HibernateDaoSupport implements ICarDao { public List<BuyInfo> getAll() {
return getHibernateTemplate().executeFind(new HibernateCallback(){ public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String hql="from BuyInfo buy order by buy.id desc";
Query query=session.createQuery(hql);
return query.list();
}});
}
}
感觉不是这的错,因为平时都是这么做的。
大家注意这个:at com.web.struts.action.DingcangAction.execute(DingcangAction.java:65)请高手帮忙