起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8916|回复: 11

[结贴] 修改单条数据用该方法报错

[复制链接]

42

主题

162

帖子

672

积分

高级会员

Rank: 4

积分
672
QQ
发表于 2018-12-20 11:49:04 | 显示全部楼层 |阅读模式
版本: BeX5V3.5 小版本号:
数据库: Oracle 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 7 浏览器: Chrome
  • //获得table参数
  •                 Table table = (Table)ContextHelper.getActionContext().getParameter("table");
  • //获得所有修改的行
  •                 Iterator<Row> rows = table.iterator(com.justep.system.data.ModifyState.EDIT );
  •                 Row row;
  •                 Collection<String> list=table.getColumnNames();
  •                 String[] strArray1 = (String[])list.toArray(new String[0]);
  •                 while (rows.hasNext()){
  •                         row = rows.next();
  •                         for(int i=0;i<table.getColumnCount();i++){
  •                                 if(row.isModified(strArray1)){
  •                                         System.out.println(row.getValue(i));
  •                                         System.out.println(row.getOldValue(strArray1));
  •                                 }
  •                         }
  •                 }
这个我是根据http://bbs.wex5.com/forum.php?mod=viewthread&tid=40966来写的,但我只修改了一行数据时报错,
  Iterator<Row> rows = table.iterator(com.justep.system.data.ModifyState.EDIT );
报的是这个错误
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.justep.system.action.Engine.invokeActions(Native Method)
        at com.justep.system.action.Engine.invokeActions(Unknown Source)
        at com.justep.business.server.BusinessServer.doAction(Unknown Source)
        at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
        at Common.addUpdateRecord(Common.java:219)
        ... 27 more

我这一行数据是
//获得所有修改的行
Iterator<Row> rows = table.iterator(com.justep.system.data.ModifyState.EDIT );



91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2018-12-20 17:11:39 | 显示全部楼层
Caused by: java.lang.NullPointerException
        at Common.addUpdateRecord(Common.java:219)

空指针,先判断为空再去操作
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

42

主题

162

帖子

672

积分

高级会员

Rank: 4

积分
672
QQ
 楼主| 发表于 2018-12-20 17:26:12 | 显示全部楼层
关键这个它不是空值,应该是有一条数据的
回复 支持 反对

使用道具 举报

42

主题

162

帖子

672

积分

高级会员

Rank: 4

积分
672
QQ
 楼主| 发表于 2018-12-20 17:26:43 | 显示全部楼层
Table table = (Table)ContextHelper.getActionContext().getParameter("table");
//获得所有修改的行
  Iterator<Row> rows = table.iterator(com.justep.system.data.ModifyState.EDIT );
是系统的方法
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2018-12-20 18:11:05 | 显示全部楼层
确认用的事件对吗?

把table的size()打出来看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

42

主题

162

帖子

672

积分

高级会员

Rank: 4

积分
672
QQ
 楼主| 发表于 2018-12-21 09:28:19 | 显示全部楼层
jishuang 发表于 2018-12-20 18:11
确认用的事件对吗?

把table的size()打出来看看

打印不出来,直接报错,,还是空指针异常,我是在保存前事件调用的这个方法
//保存前事件
        Model.prototype.mainDataBeforeSave = function(event){
                var mainData = this.comp("mainData");
                var operaID = mainData.getCurrentRowID();
                var params = new biz.Request.ActionParam();
                params.setString("tableName", "PM_ProjectBasic");
                params.setString("operaID", operaID);
                biz.Request.sendBizRequest({
                        "datatype" : "application/json",
                        "context" : this.getContext(),
                        "action" : "addUpdateRecord",
                        "parameters" : params,
                        "callback" : function(data) {
                                result = data.response;
                        }
                });
        };这是前台


System.out.println("addUpdateRecord------------");
                //获得table参数
        Table table = (Table) ContextHelper.getActionContext().getParameter("PM_ProjectBasic");
        System.out.println("table.size()------------"+table.size());
        
        //获得所有修改的行
        Iterator<Row> rows = table.iterator(com.justep.system.data.ModifyState.EDIT);
        Row row;
        Collection<String> list=table.getColumnNames();
        String[] strArray1 = (String[])list.toArray(new String[0]);
                if (rows.hasNext()) {
                        row = rows.next();
                        for (int i = 0; i < table.getColumnCount(); i++) {
                                        System.out.println(row.getValue(i));
                                        System.out.println(row.getOldValue(strArray1));
                                        System.out.println("-------------------------------------------");
                        }
                }这是后台
回复 支持 反对

使用道具 举报

42

主题

162

帖子

672

积分

高级会员

Rank: 4

积分
672
QQ
 楼主| 发表于 2018-12-21 09:29:41 | 显示全部楼层
jishuang 发表于 2018-12-20 18:11
确认用的事件对吗?

把table的size()打出来看看

http://bbs.wex5.com/forum.php?mod=viewthread&tid=40966这个链接是说在保存前事件使用
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2018-12-21 10:22:28 | 显示全部楼层
saveAction中就没有名字是PM_ProjectBasic的参数啊
案例中获取的table参数,请自己看看saveAaction中的参数,action只能获取自己的参数,不是所有的action参数都可以获取到的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

42

主题

162

帖子

672

积分

高级会员

Rank: 4

积分
672
QQ
 楼主| 发表于 2018-12-21 10:27:35 | 显示全部楼层
jishuang 发表于 2018-12-21 10:22
saveAction中就没有名字是PM_ProjectBasic的参数啊
案例中获取的table参数,请自己看看saveAaction中的参数 ...

我是把表名写死了,我传过去的参数是对的,请看后台我代码上写的双引号,并不是一个参数名,我是觉得
  Table table = (Table) ContextHelper.getActionContext().getParameter(tableName);错了,可能是没获取到值,就写了个固定值  Table table = (Table) ContextHelper.getActionContext().getParameter("PM_ProjectBasic");
回复 支持 反对

使用道具 举报

42

主题

162

帖子

672

积分

高级会员

Rank: 4

积分
672
QQ
 楼主| 发表于 2018-12-21 10:29:06 | 显示全部楼层
Jessica 发表于 2018-12-21 10:27
我是把表名写死了,我传过去的参数是对的,请看后台我代码上写的双引号,并不是一个参数名,我是觉得
  T ...

他的那个案例并没有把table参数说明,所以我想问一下我链接里那个参数具体是什么,不是穿的表名什么的么
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-27 09:17 , Processed in 0.071854 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表