AOS开发

AOS平台简介 
AOS应用基础平台基于JavaEE技术体系,以“标准功能可复用、通用模块可配置、行业需求快速开发、异构系统无缝集成”为目标,为软件开发团队提供高效可控、随需应变、快速实现业务需求的全栈式技术解决方案。点击加入QQ交流群(92497522)

AOS在线演示系统 
http://42.120.21.17/aos (在线演示系统为只读模式,部分功能可能不流畅。完美体验请搭建本地环境。) 
登录帐户/密码:root/111111。(或单击 开发者 按钮直接登录)

AOS项目主页 
http://git.oschina.net/osworks/AOS


感谢黑哥的无私奉献!通过阅读本文,您将了解AOS基本模块的开发流程,其中包括增、删、改、查。如书写不当,还望各位黑粉orA粉告知!

AOS模版开发流程

—->本例中使用MySQL数据库

① 建表

DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (`id_` varchar(64) NOT NULL DEFAULT '0',`name` varchar(40) DEFAULT NULL,PRIMARY KEY (`id_`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

②生成Dao 
AOS平台中自带Dao生成工具类cn.osworks.aos.builder.DaoBuilderConsole,进行相应的设置后,可自动生成Dao(此处根据自己的情况进行设置) 
这里写图片描述
处理完成后,会在cn.osworks.aos.hansheng.dao下生成相应的文件 
这里写图片描述 
③书写Service 
您需要注意的是,在方法saveTest中,TEST1ID需要在IdCons中定义(参考IdCons中的其他属性), 同时需要在Web界面->控制台->资源->序列号中定义,前后定义的名称应一致

package cn.osworks.aos.hansheng.service;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import cn.osworks.aos.core.asset.AOSUtils;
import cn.osworks.aos.core.id.AOSId;
import cn.osworks.aos.core.typewrap.Dto;
import cn.osworks.aos.core.typewrap.Dtos;
import cn.osworks.aos.hansheng.dao.mapper.TestMapper;
import cn.osworks.aos.hansheng.dao.po.TestPO;
import cn.osworks.aos.system.asset.IdCons;/*** 测试测试* * @author OSWorks-XC* @date 2014-07-16*/
@Service
public class TestService {@Autowiredprivate TestMapper testMapper;/*** 查询* * @param qDto* @return*/public List likeTests(Dto qDto) {List list = testMapper.likePage(qDto);return list;}/*** 增加* * @param inDto*/@Transactionalpublic void saveTest(Dto inDto) {TestPO testPO = new TestPO();AOSUtils.apply(inDto, testPO);// 此处TEST1ID需要在IdCons中定义(参考IdCons中的其他属性)// 同时需要在Web界面->控制台->资源->序列号中定义,前后定义的名称应一致testPO.setId_(AOSId.id(IdCons.TEST1ID));testMapper.insert(testPO);}/*** 修改* * @param inDto*/@Transactionalpublic Dto updateTest(Dto inDto) {Dto outDto = Dtos.newDto();TestPO testPO = new TestPO();AOSUtils.apply(inDto, testPO);testMapper.updateByKey(testPO);return outDto;}/*** 删除* * * @param qDto*/@Transactionalpublic Dto deleteTest(Dto qDto) {Dto outDto = Dtos.newDto();String[] selections = qDto.getRows();int del = 0;for (String id_ : selections) {testMapper.deleteByKey(id_);del++;}String msg = "操作完成, ";if (del > 0) {msg = AOSUtils.merge(msg + "成功删除测试[{0}]个。", del);}outDto.setAppMsg(msg);return outDto;}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92

④书写Controller

package cn.osworks.aos.hansheng.modules;import java.util.List;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;import cn.osworks.aos.core.asset.AOSJson;
import cn.osworks.aos.core.asset.WebCxt;
import cn.osworks.aos.core.typewrap.Dto;
import cn.osworks.aos.core.typewrap.Dtos;
import cn.osworks.aos.hansheng.dao.po.TestPO;
import cn.osworks.aos.hansheng.service.TestService;/*** 测试测试* * @author OSWorks-XC* @date 2014-07-16*/
@Controller
@RequestMapping(value = "hansheng/test/")
public class TestController {@Autowiredprivate TestService testService;/*** 页面初始化* @return*/@RequestMapping(value = "init")public String init(HttpSession session, HttpServletRequest request) {return "hansheng/test/test.jsp";}/*** 查询* * @param request* @param response*/@RequestMapping(value = "listTests")public void listTests(HttpServletRequest request,HttpServletResponse response) {Dto qDto = Dtos.newDto(request);List testPOs = testService.likeTests(qDto);String outString = AOSJson.toGridJson(testPOs, qDto.getPageTotal());WebCxt.write(response, outString);}/*** 增加* * @param request* @param response*/@RequestMapping(value = "saveTest")public void saveTest(HttpServletRequest request,HttpServletResponse response) {Dto dto = Dtos.newDto(request);testService.saveTest(dto);WebCxt.write(response, "操作完成,测试新增成功。");}/*** 修改* * @param request* @param response*/@RequestMapping(value = "updateTest")public void updateTest(HttpServletRequest request,HttpServletResponse response) {Dto dto = Dtos.newDto(request);Dto outDto = testService.updateTest(dto);outDto.setAppMsg("操作完成,组织信息修改成功。");WebCxt.write(response, AOSJson.toJson(outDto));}/*** 删除* * @param request* @param response*/@RequestMapping(value = "deleteTest")public void deleteTest(HttpServletRequest request,HttpServletResponse response) {Dto dto = Dtos.newDto(request);Dto outDto = testService.deleteTest(dto);WebCxt.write(response, AOSJson.toJson(outDto));}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101

⑤书写 Jsp

<%@ page contentType="text/html; charset=utf-8"%>
<%@ include file="/WEB-INF/jsp/common/tags.jsp"%>
<aos:html>
<aos:head title="测试测试111"><aos:include lib="ext" /><aos:base href="hansheng/project/test" />
aos:head>
<aos:body>
aos:body>
<aos:onready><aos:viewport layout="fit"><aos:gridpanel id="_g_test" url="listTests.jhtml" onrender="_g_test_query" onitemdblclick="_w_test_u_show"><aos:docked><aos:dockeditem onclick="_w_test_show" text="新增" icon="add.png" /><aos:dockeditem onclick="_w_test_u_show" text="修改" icon="edit.png" /><aos:dockeditem onclick="_g_test_del" text="删除" icon="del.png" /><aos:triggerfield emptyText="姓名" name="name" id="_hotkey" onenterkey="_g_test_query"trigger1Cls="x-form-search-trigger" onTrigger1Click="_g_test_query" width="180" /><aos:dockeditem xtype="tbfill" />aos:docked><aos:selmodel type="checkbox" mode="multi" /><aos:column type="rowno" /><aos:column dataIndex="id_" hidden="true" /><aos:column header="姓名" dataIndex="name"/>aos:gridpanel><aos:window id="_w_test" title="新增测试"><aos:formpanel id="_f_test" width="400" layout="column" labelWidth="70"><aos:fieldset title="请查询" labelWidth="60"><aos:textfield name="name" fieldLabel="名称" allowBlank="false" maxLength="50" />aos:fieldset>aos:formpanel><aos:docked dock="bottom" ui="footer"><aos:dockeditem xtype="tbfill" /><aos:dockeditem onclick="_f_test_save" text="保存" icon="ok.png" /><aos:dockeditem onclick="#_w_test.hide();" text="关闭" icon="close.png" />aos:docked>aos:window><aos:window id="_w_test_u" title="修改测试"><aos:formpanel id="_f_test_u" width="400" layout="column" labelWidth="70"><aos:hiddenfield name="id_" /><aos:fieldset title="请查询" labelWidth="60"><aos:textfield name="name" fieldLabel="名称" allowBlank="false" maxLength="50" />aos:fieldset>aos:formpanel><aos:docked dock="bottom" ui="footer"><aos:dockeditem xtype="tbfill" /><aos:dockeditem onclick="_f_test_u_save" text="保存" icon="ok.png" /><aos:dockeditem onclick="#_w_test_u.hide();" text="关闭" icon="close.png" />aos:docked>aos:window>aos:viewport><script type="text/javascript">//查询测试列表function _g_test_query(){var params = {name : _hotkey.getValue()};_g_test_store.getProxy().extraParams = params;_g_test_store.load();}//弹出新增测试窗口function _w_test_show(){AOS.reset(_f_test);_w_test.show();}//保存测试function _f_test_save(){AOS.ajax({forms : _f_test,url : 'save.jhtml',ok : function(data) {_w_test.hide();_g_test_store.reload();AOS.tip(data.appmsg);}}); }//弹出修改测试窗口function _w_test_u_show(){AOS.reset(_f_test_u);var record = AOS.selectone(_g_test);if(record){_w_test_u.show();_f_test_u.loadRecord(record);}}        //修改测试function _f_test_u_save(){AOS.ajax({forms : _f_test_u,url : 'update.jhtml',ok : function(data) {_w_test_u.hide();_g_test_store.reload();AOS.tip(data.appmsg);}}); }//删除测试function _g_test_del(){var rows = AOS.rows(_g_test);if(rows === 0){AOS.tip('删除前请先选中数据。');return;}var msg =  AOS.merge('确认要删除选中的[{0}]条数据吗?', rows);AOS.confirm(msg, function(btn){if(btn === 'cancel'){AOS.tip('删除操作被取消。');return;}AOS.ajax({url : 'delete.jhtml',params:{aos_rows_: AOS.selection(_g_test, 'id_')},ok : function(data) {AOS.tip(data.appmsg);_g_test_store.reload();}});});}script>
aos:onready>
aos:html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131

完了在系统中配置好菜单,设置好权限 
这里写图片描述 
功能预览、测试 
这里写图片描述

引用“soft_xiang”的评论:service里面
[code=java]
AOSUtils.apply(inDto, testPO...


现在改成

AOSUtils.copyProperties(inDto, aos_sys_user_extPO);

这个了
6楼  soft_xiang 2015-11-11 18:27发表 [回复]
service里面
[java]  view plain copy
  1. AOSUtils.apply(inDto, testPO);  

出现 The method apply(Dto, Cus_base_partnersPO) is undefined for the type AOSUtils
Re:  soft_xiang 2015-11-11 18:28发表 [回复]
回复soft_xiang:我改过代码,AOSUtils中没有apply方法



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部