Dao实现
public class MySQLDao extends HibernateDaoSupport implements Dao{
//添加消息
public void addMessage(Message message){
System.out.println("ok");
this.getHibernateTemplate().save(message);
}
//修改消息
public void modifyMessage(Message message){
System.out.println("ok");
this.getHibernateTemplate().update(message);
}//添加消息action
public class AddMessageAction extends ActionSupport {
private Message message;
private MySQLDao addMessage;
//get,set方法略写 @Override
public String execute() throws Exception {
addMessage.addMessage(message);
return super.execute();
}//修改消息action
public class ModifyMessageAction extends ActionSupport{
private Message message;
private int id;
private String password;
private MySQLDao DelMessage;
////get,set方法略写 @Override
public String execute() throws Exception {
System.out.println(id+","+password); message.setPassword(password);
message.setId(id); System.out.println(message.getContent());
System.out.println(message.getEmotional());
System.out.println(message.getFrom());
System.out.println(message.getId());
DelMessage.modifyMessage(message);
return SUCCESS;
}
//struts.xml
<action name="AddMessageAction" class="AddMessageAction">
<result name="success">/check.jsp</result>
</action>
<action name="ModifyMessageAction" class="ModifyMessageAction">
<result name="success">/check.jsp</result>
</action>//spring.xml
<bean name="AddMessageAction" class="com.fy.ming.Board.control.AddMessageAction" scope="prototype">
<property name="message" ref="message"/>
<property name="addMessage" ref="MySQLDao"/>
</bean>
<bean name="ModifyMessageAction" class="com.fy.ming.Board.control.ModifyMessageAction" scope="prototype">
<property name="message" ref="message"/>
<property name="DelMessage" ref="MySQLDao"/>
</bean>结果:
添加消息正常
修改消息:
java.lang.NullPointerException
com.fy.ming.Board.control.ModifyMessageAction.execute(ModifyMessageAction.java:68)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
//我倒调了好久
public class MySQLDao extends HibernateDaoSupport implements Dao{
//添加消息
public void addMessage(Message message){
System.out.println("ok");
this.getHibernateTemplate().save(message);
}
//修改消息
public void modifyMessage(Message message){
System.out.println("ok");
this.getHibernateTemplate().update(message);
}//添加消息action
public class AddMessageAction extends ActionSupport {
private Message message;
private MySQLDao addMessage;
//get,set方法略写 @Override
public String execute() throws Exception {
addMessage.addMessage(message);
return super.execute();
}//修改消息action
public class ModifyMessageAction extends ActionSupport{
private Message message;
private int id;
private String password;
private MySQLDao DelMessage;
////get,set方法略写 @Override
public String execute() throws Exception {
System.out.println(id+","+password); message.setPassword(password);
message.setId(id); System.out.println(message.getContent());
System.out.println(message.getEmotional());
System.out.println(message.getFrom());
System.out.println(message.getId());
DelMessage.modifyMessage(message);
return SUCCESS;
}
//struts.xml
<action name="AddMessageAction" class="AddMessageAction">
<result name="success">/check.jsp</result>
</action>
<action name="ModifyMessageAction" class="ModifyMessageAction">
<result name="success">/check.jsp</result>
</action>//spring.xml
<bean name="AddMessageAction" class="com.fy.ming.Board.control.AddMessageAction" scope="prototype">
<property name="message" ref="message"/>
<property name="addMessage" ref="MySQLDao"/>
</bean>
<bean name="ModifyMessageAction" class="com.fy.ming.Board.control.ModifyMessageAction" scope="prototype">
<property name="message" ref="message"/>
<property name="DelMessage" ref="MySQLDao"/>
</bean>结果:
添加消息正常
修改消息:
java.lang.NullPointerException
com.fy.ming.Board.control.ModifyMessageAction.execute(ModifyMessageAction.java:68)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
//我倒调了好久
你检查下,在这一行中你的哪个对象是空的。
在你的
//修改消息action
public class ModifyMessageAction extends ActionSupport{ private Message message;
private int id;
private String password;
private MySQLDao DelMessage;
////get,set方法略写 @Override
public String execute() throws Exception { System.out.println(id+","+password); message.setPassword(password);
message.setId(id); System.out.println(message.getContent());
System.out.println(message.getEmotional());
System.out.println(message.getFrom());
System.out.println(message.getId());
DelMessage.modifyMessage(message); return SUCCESS;
}
先打个断点跟进去
仔细检查message以及get和set方法是否写全
addMessage怎么又有值,配置文件也都一样的写法,action也都在收集数据都打出来了
~~最后我把代码重写了.
神奇~就好了.对比了一下发现就改了一个地方.private int id;
private String password;
message.setId(id);
message.setPassword(password);取消了这个两值就正常了.程序是调好了,但是这个问题还没解决~~~
难通不能基础int或String吗?