一直在准备做一套系统, 具体用来干什么都没确定. 只是从纯技术人员的想法, 先搭建一套开发的框架. 做的时候才发现, 系统用途不同, 框架也是不同的. 暂时就先当作企业内部管理的系统来做吧.

后台基础框架是struts2+spring3+mybatis3.2.

前台用jQuery

数据库:mySql

之前搭建ssm的框架就废了不少时间, 刚开始幼稚的计划都用最新版本, 还增加了如struts2的json插件,spring-mybatis插件, mybatis-generator等插件, 结果都弄到一起才发现各种版本不兼容. 后来使用maven来搭建, 方便了很多, 可以方便的更换框架版本来调整. 但在搭建完成以后才觉得开发的时候很别扭, 也可能是我还是不熟悉maven, 每次修改一个jsp都得重新发布. 想到基本框架搭建差不多了, 就把maven工程转换成了普通的web工程.

因为对美工不熟, js, css虽然会用, 但实在算不得熟练. 在网上了解了很多, 决定使用jQuery UI.

从一个基本的数据对象增删该查开始做起, 对框架的应用从开始的xml配置开始, 先完成基本的功能, 然后再优化代码,配置文件. 将觉得多余的, 不方便的东西一一去掉. 现在开始用注解替换xml文件.

前台的页面, 从表格开始. 选择了使用json来作为重要的前后台传输数据, 发现手动去转换对象和json对象太过繁琐, 开始使用jQGrid. 期间发现了两个纠结了不少时间的问题.

1. DAO层使用注解注入SqlSessionTemplate的问题

使用的继承SqlSessionDaoSupport的方式来完成SqlSessionTemplate的注入. 按道理SqlSessionDaoSupport应该也支持注解注入的. 还从网上下了源代码看, 貌似也没问题. 是在我的工程中却一直不行. 后来看了一下版本好,才发现mybatis-spring.jar从1.2版本去掉了Autowire的注解.

找到原因了, 就好解决了. 在工程中增加了一个baseDAO, 重写了setSqlSessionTemplate, 并增加注解

package dao;

 

import javax.annotation.Resource;

 

import org.mybatis.spring.SqlSessionTemplate;

import org.mybatis.spring.support.SqlSessionDaoSupport;

 

public class BaseDao extends SqlSessionDaoSupport{

    @Resource

    public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {

        super.setSqlSessionTemplate(sqlSessionTemplate);

    }

 

    protected <S> S getMapper(Class<S> clazz) {

        return getSqlSession().getMapper(clazz);

    }

}

2. jQGrid无法解析从后台返回的json数据

1. jQGrid需要通过jsonReader来指定客户端如何解析服务端传过来的json数据

对应后台返回的数据应该是:

{

    "gridModel":

        [

            {"birthday":null,"id":1,"name":"wang","sex":1}

        ],

    "page":0,

    "record":1,

    "rows":0,

    "total":1

}

2. struts配置文件中要通过正则表达式指定返回json数据, 否则页面上不会显示数据.

<action name="jqGridUserActon" class="jqGridUserAction">

    <result name="success" type="json">

    <param name="includeProperties">

        ^gridModel\[\w+\]\.\w+,

        rows, page, total, record

    </param>

    <param name="noCache">true</param>

    <param name="ignoreHierarchy">false</param>

</result>

</action>

ssmWeb开发框架_2014-01的更多相关文章

  1. sqlserver 将多行数据查询合并为一条数据

    有这样一个需求:表T_FUN_TASK为任务表,有字段(TASKID,TASKNAME),表T_FUN_LOGBOOK为日志表,有字段(LOGID,TASKID,LOGDATE),一个任务可持续多天, ...

  2. 01 基于umi搭建React快速开发框架

    介绍 基于umi搭建一个快速开发框架,react 应用框架.umi 以路由为基础的,支持类 next.js 的约定式路由,以及各种进阶的路由功能,并以此进行功能扩展,比如支持路由级的按需加载. 我们会 ...

  3. 一步一步搭框架(asp.netmvc+easyui+sqlserver)-01

    一步一步搭框架(asp.netmvc+easyui+sqlserver)-01 要搭建的框架是企业级开发框架,适用用企业管理信息系统的开发,如:OA.HR等 1.框架名称:sampleFrame. 2 ...

  4. easyconf——基于AugularJS的配置管理系统开发框架

    目录 1 easyconf的诞生2 easyconf的设计理念 2.1 总体设计 2.2 细节设计 2.2.1 CRUD操作 2.2.2 即时校验 2.2.3 下拉框设计3 easyconf使用指南 ...

  5. python Web开发框架-Django (1)

    以前用web.py(另外一款轻量级web开发框架)做一个监控管理平台,没有做特别的记录就不好拾起来.最近做一个日志聚合系统,使用的是django,这次就记下来,方便查询. Django是一个高效的we ...

  6. [小北De编程手记] : Lesson 01 玩转 xUnit.Net 之 概述

    谈到单元测试,任何一个开发或是测试人员都不会觉得陌生.我想大多数的同学也都是接触过各种单元测试框架.关于单元测试的重要性,应该不会有太多的质疑.这个系列,我向大家介绍一下xUnit.Net的使用.就让 ...

  7. 基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用

    在前面介绍了两篇关于我的基于MVC4+EasyUI技术的Web开发框架的随笔,本篇继续介绍其中界面部分的一些使用知识,包括控件的赋值.取值.清空,以及相关的使用. 我们知道,一般Web界面包括的界面控 ...

  8. PhoneJS - HTML5 JavaScript 移动开发框架

    大伙儿都知道有很多基于HTML5的移动应用框架.下一代开发工具将帮助开发者远离那些难学和让人费劲的原生SDK语言,如Objective-C,Java等.大家都知道,HTML5代表着交叉平台如移动应用程 ...

  9. 转--基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用

    原文  http://www.cnblogs.com/wuhuacong/p/3317223.html 基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用 在前面介绍了两篇关于我的基 ...

随机推荐

  1. rsync+inotify-tools

    源服务器:192.168.0.100   目标服务器:192.168.0.101   目的:把源服务器上/home/test目录实时同步到目标服务器的/home/test下   具体操作:   第一部 ...

  2. rsync详解之exclude排除文件

    rsync详解之exclude排除文件 问题:如何避开同步指定的文件夹?  --excludersync  --exclude files and folders http://articles.sl ...

  3. 基于Ambari构建自己的大数据平台产品

    目前市场上常见的企业级大数据平台型的产品主流的有两个,一个是Cloudera公司推出的CDH,一个是Hortonworks公司推出的一套HDP,其中HDP是以开源的Ambari作为一个管理监控工具,C ...

  4. 翻译:Laravel-4-Generators 使用自己定义代码生成工具高速进行Laravel开发

    使用自己定义代码生成工具高速进行Laravel开发 这个Laravle包提供了一种代码生成器,使得你能够加速你的开发进程.这些生成器包含: generate:model – 模型生成器 generat ...

  5. 29个酷炫的Firefox配置参数

    你可能安装了许多的firefox插件以增加浏览器的功能,但是如果你想更好地使用firefox,学习如何配置about:config参数是很有必要的. about:config配置页包含了所有的fire ...

  6. Lua中的常用语句结构以及函数

     1.Lua中的常用语句结构介绍 --if 语句结构,如下实例: gTable = {} ] ] then ]) == gTable[] then ]) else print("unkown ...

  7. 处理器拦截器(HandlerInterceptor)详解

    处理器拦截器(HandlerInterceptor)详解 编程界的小学生 关注 2017.04.06 15:19* 字数 881 阅读 657评论 0喜欢 4 简介SpringWebMVC的处理器拦截 ...

  8. $-------JSP中表达式语言的$特殊字符的作用

    JSP 中EL表达式用法详解 EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user ...

  9. C语言0长度数组(柔性数组)

    0长度数组,又称为柔性数组(flexible array).通经常使用来实现变长数组.常见于TLV(type-length-value)的数据结构中. 在标准 C 和 C++ 中,不同意用 0 长度数 ...

  10. Linux性能分析top iostat vmstat free

    最近看到一大牛的分析报告,才知道笔者认识这4个命令是多么肤浅,其实要读懂内存的信息,是要一些功力的.1.top   VIRT           虚拟内存总量,VIRT=SWAP+RESSWAP    ...