arttemplate嵌套子模板,属性不存在时,取值bug与解决办法

无可置疑,arttemplate是本人用过的最好用的前端模板引擎。不过随着使用的深入与更加广泛,还是遇到了一些梗。下面将较少一个本人遇到的实际问题,分析方法与采用的解决办法。

一、问题描述

Arttemplate嵌套子模板,属性不存在时,默认值$data取值为当前父级。

<body>
<div id="demo"></div>

<!--
作者:1209461019@qq.com
时间:2017-02-17
描述:主模板
-->
<script type="text/html" id="demo_T">
{{each}}
	<div>姓名:{{$value.name}}</div>
	<div>性别:{{$value.age}}</div>
	<!--
		作者:1209461019@qq.com
		时间:2017-02-17
		描述:嵌套子模板
	-->
	<div>朋友:{{include 'demo_sub_T' $value.friends}}</div>
	<hr /> 
{{/each}}
</script>
<!--
	作者:1209461019@qq.com
	时间:2017-02-17
	描述:子模板
-->
<script type="text/html" id="demo_sub_T">
{{each}}
	<div>朋友姓名:{{$value.name}}</div>
	<div>朋友年龄:{{$value.age}}</div>
{{/each}}
</script>
 继续阅读arttemplate嵌套子模板,属性不存在时,取值bug与解决办法

maven-module多模块依赖项目在eclipse中搭建与开发

一、Maven-module多模块依赖项目说明

Maven-module项目可以把较大的项目按照功能或者层次进行横向与纵向的模块化分割。项目结构是父项目子模块的结构进行组织。整个项目以pom型项目进行组织,其模块可以是jar项目,也可以是war项目,也可以pom项目。合理的使用maven-module项目,可以是项目结构分明,同时提高了代码的复用性。

二、Maven-module项目示例结构

本文以maven插件官方示例(具体地址请查看附录)为素材,进行了项目搭建、运行与打包。项目代码压缩包请查看附录。

Maven project structure

pom.xml          (top level pom with packaging pom)

my-api/pom.xml     (api project with packaging jar)

my-api-impl/pom.xml  (api implementation project with packaging jar)

my-webapp/pom.xml   (webapp project with packaging war)

三、Maven-module项目eclipse下使用tomcat启动

直接上图

继续阅读maven-module多模块依赖项目在eclipse中搭建与开发

2017年内部变革意见与建议

一、变革目标

以提高项目开发效率为核心,用规范化、可量化项目开发与管理技术,保证项目的可控性与高质量;增强员工专业技能,提高团队整体竞争力;促进内部良性竞争,活跃技术氛围;增加公司资金积累与技术积淀。

二、现状与痛点

a) 旧框架的尴尬处境

之前的旧框架对于公司初期提高项目开发效率的确起着至关重要的作用——使用门槛低(低到基本上只要有是java入门级别的就可以独立开发一个功能模块)、开发速度快。

如今,旧框架已成“鸡肋”——虽说开发效率很高,但系统界面风格老旧且不易扩展、代码质量差。个人分析有以下几个原因:

1、框架对第三方技术的封装违反了不污染源代码与适配的原则,造成框架对extjs的依赖版本极其严格,却又无法兼容其新特性的致命弱点。

2、框架仅由一人维护且脱离实际项目应用场景,仅进行bug修改,缺乏框架的统筹设计与持续升级

3、框架的使用降低了使用人员的技术门槛,但在缺乏规范性培训与基础技能培训的环境中,框架的优势很容易被劣质代码所引起的不可维护性与低性能所冲淡。

a) 新开发模式无法积淀

2015年起所使用的新型开发模式按说应该在一年半多的使用经验中进行了归纳与总结。但由于在项目中一味尝试新技术(有的技术其实已经过时并淘汰)却浅尝辄止,无暇也无法进行新架构的积淀。

不过,还好在在各种“尝新”的过程中,血淋淋的教训告诉了我们:

1、只注重业务功能的堆积,而不注重系统的性能与可维护性,产品上线之日就是产品死亡之日。

2、企业不是实验室,一味“尝新”的代价可能是断送一个企业的前程。

3、任何成果都要以文本的形式进行总结并进行最大范围的分享。没有总结的成果不算“组织过程资产”

4、执行力!执行力!还是执行力!从上到下不要抱着得过且过的态度做事。不要懒,项目没有文档只有代码没啥用。不要怕,非正式沟通(电话、即时聊天等)与正式沟通(邮件)都不可少。不要拖,遇到问题及时沟通,该与干系人交涉的就去交涉。 继续阅读2017年内部变革意见与建议

java使用Gson进行json字符串反序列化转map对象时,int变为double的解决办法

java处理json字符串与java对象的互转,google家的Gson是个很好的工具。不过使用中也遇到了一些坑(有的其实更像是惊喜),与大家分享下。

一、json字符串反序列化转map对象时,int变为double的解决办法。

二、json字符串中格式时间字符串与Date对象的直接转换。

三、字符串与枚举的直接转换(自带此功能)。

Gson默认的坑

问题:使用Gsonjson字符串转为map时,原来的int类型反序列化后成为double类型。

Json字符串:

"{\"lngnum\":12,\"dbnum\":12.34,\"datetime\":\"2014-12-23 12:09:21\",\"date\":\"2014-12-23\",
\"next\":{\"lngnum\":12,\"dbnum\":12.34,\"datetime\":\"2014-12-23 12:09:21\",\"date\":\"2014-12-23\"}}";

实现方式:

/**
 * 使用默认的gson对象进行反序列化
 *
 * @param json
 * @param typeToken
 * @return
 */
public static <T> T fromJsonDefault(String json, TypeToken<T> typeToken) {
Gson gson = new Gson();
return gson.fromJson(json, typeToken.getType());
}

转化结果:

lngnum-12.0-Double//整型变为了浮点类型
dbnum-12.34-Double
datetime-2014-12-23 12:09:21-String
date-2014-12-23-String
====================
next-Map start
lngnum-12.0-Double//整型变为了浮点类型
dbnum-12.34-Double
datetime-2014-12-23 12:09:21-String
date-2014-12-23-String
next-Map end
====================

方法一:重新实现TypeAdapter

实现方式:

继续阅读java使用Gson进行json字符串反序列化转map对象时,int变为double的解决办法

Checkstyle-自动化java代码规范检查的eclipse插件安装与使用

一、Checkstyle插件安装

打开eclipse,Help->Eclipse Marketplace->搜索“checkstyle

选择Checkstyle Plug-in->install(进行安装)->一路安装(eclipse会重启一次)。

二、Checkstyle插件配置

a) 插件参数配置

Window->preferences->点击“checkstyle”菜单项 继续阅读Checkstyle-自动化java代码规范检查的eclipse插件安装与使用