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

QQ登录

只需一步,快速开始

查看: 1802|回复: 4

[结贴] 执行自定义更新action错误,

[复制链接]

5

主题

23

帖子

61

积分

初级会员

Rank: 2

积分
61
QQ
发表于 2017-6-23 17:57:46 | 显示全部楼层 |阅读模式
网上有不少代码,但是细节如何写就没有说明
1)BASS
增加自定义的java文件.
package mytest;
import ......(省略)
public class my_save {       
public static void saveUser(ServletRequest request, ServletResponse response) threw ParseException, SQLException, NamingException{
        JSONObject params=(JSONObject) JSONObject.parse(request.getParameter("params"));
        JSONObject data=params.getJSONObject("data");
        Table table= Transform.jsonToTable(data);
      
        Connection conn=Util.getConnection(DATASOURCE_TAKEOUT);
        try{
               
                conn.setAutoCommint(false);
                try{
                        Collection<String> columns=table.getColumnName();
                        column.remove("orderCount");
                        Util.saveData(conn,table,TABLE_TAKEKOUT_USER,columns);
                        conn.commit();
                }catch(SQLException e){
                        conn.rollback();
                        threw e;
                }
        }finally{
                conn.close();
        }      
}
前端W文件
Model.prototype.userDataCustomSave(event){
        var data=event.source;
        var params={               
                data:data.toJson()
        };
        var success=function(){
                data.applyUpdates();
        }
        Baas.sendRequest({
                "url":"/mytest/my_save",
                "params":params,
                "action": "saveUser",
                "success":success
        })
}
=====================================
执行错误
Action[mytest/my_save/saveUser] Method加载失败,可能原因:Baas模型没有编译,请Baas模型编译后重启服务!
不明白问题:
1-在a.service.m文件中已经添加action,
名称:saveUser
实现:mytest.my_save.saveUser
2-W文件中的data是用bassdata或data都不行
检查了一下午也看不出应该改哪里?
另外,事务代码是否正确?如果是delete是否可也是通过sql执行
DataUtils.queryData(conn, sql, null, null, null, null);

初学者,麻烦高手指导一下,谢谢
发表于 2017-6-23 18:31:18 | 显示全部楼层
自定义action 请参考:
http://docs.wex5.com/baas-customaction/

http://docs.wex5.com/wex5-server-question-list-2025/
http://docs.wex5.com/wex5-ui-question-list-2060/

1.返回值必须是JSONObject 类型的
而你是
public static void saveUser

返回值void是不行的!

2.baas修改资源后!必须右键模型编译才可以运行的!

3.增删改都是执行saveAction  ,一般系统自定义action就可以!如果想自己实现!请参考baas的源码
http://docs.wex5.com/wex5-server-question-list-2035
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

5

主题

23

帖子

61

积分

初级会员

Rank: 2

积分
61
QQ
 楼主| 发表于 2017-6-25 08:36:17 | 显示全部楼层
DataUtils.saveData(connect,table,string)
参数:
1-数据库连接
2-json数据
3-这是什么?跟踪是空字符
----------------------------------------------------
保存条件如何定义?
找不到相关的说明文档啊,谢谢
回复 支持 反对

使用道具 举报

发表于 2017-6-26 11:47:34 | 显示全部楼层
bain06 发表于 2017-6-25 08:36
DataUtils.saveData(connect,table,string)
参数:
1-数据库连接

保存 包括增删改!
其实data组将存储的数据中,每行都有状态的!
可以使用data.getRowState(row)  获取当前行状态进行查看行状态!

如果是none  (Data.STATE.NONE)则这行代码不会被保存的!!
如果是其他的值
Data.STATE.NEW、Data.STATE.DELETE、Data.STATE.EDIT、
就会执行保存!
所以你可以通过
setRowState 方法设置行状态,控制这行是否需要保存!

方法的使用介绍可以看文档
http://doc.wex5.com/comps-data/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

5

主题

23

帖子

61

积分

初级会员

Rank: 2

积分
61
QQ
 楼主| 发表于 2017-6-27 06:43:30 | 显示全部楼层
明白了
测试先在bassdata中删除,再执行savedata就可以了
谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 07:36 , Processed in 0.078337 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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