首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

Struts2有关问题 action要用的model对象 需要实例化吗

2012-06-02 
Struts2问题 action要用的model对象 需要实例化吗Struts2问题 action要用的model对象 需要实例化吗我用的s

Struts2问题 action要用的model对象 需要实例化吗
Struts2问题 action要用的model对象 需要实例化吗
我用的struts2+hibernate3.0+spring2.0架构
下面是代码片段:
public class ArrangedutyAction extends BaseAction {
/**

*/
private static final long serialVersionUID = 1L;
private ArrangedutyManager arrangedutyManager;
private List list;
private CompanyManager companyManager;
private Arrangeduty arrangeduty;
private int c_id;
我用到Arrangeduty 的model对象是这样写会报错
java.lang.NullPointerException
at com.anrui.aroa.web.actions.sp.ArrangedutyAction.add(ArrangedutyAction.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation
如果改成就不会出错了啊
public class ArrangedutyAction extends BaseAction {
/**

*/
private static final long serialVersionUID = 1L;
private ArrangedutyManager arrangedutyManager;
private List list;
private CompanyManager companyManager;
private Arrangeduty arrangeduty=new Arrangeduty();
private int c_id;
但是我同事他们都用第一种方法 也没错误 有些资料也不用new Arrangeduty() 为什么到我这就错了 希望高手解答我的疑问


[解决办法]

引用楼主 shanpeng238 的帖子:
Struts2问题 action要用的model对象 需要实例化吗
我用的struts2+hibernate3.0+spring2.0架构
下面是代码片段:
public class ArrangedutyAction extends BaseAction {
/**
*
*/
private static final long serialVersionUID = 1L;
private ArrangedutyManager arrangedutyManager;
private List list;
private CompanyManager companyManager;
private Arrangeduty arrangeduty;
private int c_id;
我用到Arrange…

[解决办法]
既然是nullpoint那就在用的时候加个判断
1、arrangeduty的getter和setter方法可写了
2、页面标签name可跟arrangeduty匹配上了
这2个问题详细检查下
[解决办法]
不用SH集成则需要实例化;
用了SH集成则不需要实例化!

你的问题是Set方法没写或属性名匹配错误导致无法NULLPOINT,个人更倾向于你忘写SET方法,因为属性名匹配错误的话编译时就可能提醒出来了!

热点排行