AOS应用基础平台-模块开发流程

来源:互联网 发布:帝王三国破解版无网络 编辑:程序博客网 时间:2024/05/22 00:22

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;

②生成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 */@Servicepublic class TestService {    @Autowired    private TestMapper testMapper;    /**     * 查询     *      * @param qDto     * @return     */    public List<TestPO> likeTests(Dto qDto) {        List<TestPO> list = testMapper.likePage(qDto);        return list;    }    /**     * 增加     *      * @param inDto     */    @Transactional    public 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     */    @Transactional    public Dto updateTest(Dto inDto) {        Dto outDto = Dtos.newDto();        TestPO testPO = new TestPO();        AOSUtils.apply(inDto, testPO);        testMapper.updateByKey(testPO);        return outDto;    }    /**     * 删除     *      *      * @param qDto     */    @Transactional    public 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;    }}

④书写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 {    @Autowired    private 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<TestPO> 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));    }}

⑤书写 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>

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

0 0
原创粉丝点击