简介一套开源的 java 平台 web构架,体积小巧,使用模板制作页面。标准的(html+css+javascript) UI方式。
丢掉了jsp编译的烦恼和使用tag的麻烦, 完整的架构体系,包括了ui、ioc、cache、连接池、验证、模板、数据库查询更新等更能和完整代码。配置和使用上类似ssh构架,但体积更小,功能不弱,b/s,c/s 构架都可以使用.为了提高易用性,学习和使用上没有使用特殊技术,语言上只使用了标准的 java 和javascript,模板标签类似freemaker(将非XML标准的Freemaker改为标准的XML标签)模板语言引擎使用javascript,所以对于ssh有一定了解的人很容易上手.完整的构架结构,包含了数据库到页面显示的繁多功能,支持分布式事务支持,hsession 远程调用等。
特点1.设计上尽量使用jdk内置库,尽量不使用第三方库。2M不到的包实现了大部分ssh的功能.想想ssh里边的各种jar包上100M的恐怖.在来看看这个构架,你会感觉如此轻盈。
2. sober简化了数据库的使用,避免了hibernate 的映射查询和映射后的查询的陷阱.提高开发速度,不提高难道。
3. 模板页面更方便调试,而且MVC分离.提供了dw的搭建插件.开发方便.比普通的jsp更容易安装,运行不需要编译。.保证了构架的清晰并使用标准的html+css+javascript方式配合模板输出,页面干净整洁。
4. javascript在服务器和客户端映射执行,一次代码定义,可以服务器和浏览器两头验证.并且可以绑定到数据库保存验证。将ui验证、服务器验证和数据库验证合为一体。
5. web UI使用mootools库,如果使用压缩gzip方式发布.一套ui的js代码在200k左右.实现了大部分的常用ui功能.其中包括表格,日历,切换标签,相册等。javascript库很多,可以任意选择搭配,默认提供一套简单的ui满足基本开发。
功能说明siocIOC容器,特点小型,快速,支持变量类型,所有bean 都是延时加载,配置直观.能够代理创建,也可以实现AOP。txwebweb action 构架,很像xwork,但使用模版语言生成页面,XML方向请求载入变量,完全放弃jsp, 在页面显示前已经生成WEB页面,并且你可以得到要显示的HTML代码.且支持jdk1.5的标签配置跳转,也可象Struts2(webwork2)那样配置跳转,特点小,速度快.不需要编译. 并且提供了hsession 直接调用action的接口,能够方便是实现hsession 方式的分布式。action 名称支持通配符方式,可以实现类似resFull方式,但不能达到0配置。 内置了一个强大的上传组件(支持文件编码,支持flash方式上传,能个自动自动将中文文件名转换为拼音文件名,重复文件名能更具序号自增),request.session等直接使用,不像Struts2那么麻烦。
得到参数直接 getString('varName'), getInt('varName') 就可以得到,
如果要得到一个bean对象只需要 , BeanName bean= (BeanName) getBean(BeanName.class);
这样页面参数就已经放入bean里边了。参数传递非常方便。
sober
数据库ORM组件,支持jdk1.5的标签配置数据库映射,提供Amber,hibernate,ibatis 的部分优秀的查询方式和映射配置,尽量的保证jdbc高速度.细粒度控制cache。避免了hibernate的很多切点。scriptmark一个类似Freemarker的模板语言,标签类似Freemarker,但更加标准化。使用javascript引擎。
标签例子:
list________
<#list v=list>
<li>${v.index}-${v}</li>
</#list>
if____________
<#if where=a=='11'>
out:aaaaaaa
<#else>
out:bbbbbbbb
</#else>
</#if>
date ______格式化输出
${date.string('yyyy年MM月dd')}
date ______格式化输出
${date.string('yyyy年MM月dd')}
mynum=12345____函数调用
${mynum.toChineseCurrency()} ${mynum.toChineseNumber()}
结果:壹拾贰万叁仟肆佰伍拾陆圆整 一十二万三千四百五十六
结对值 ${-21321.abs()}
同类模板性能简单比较测试环境:多线程并发,交叉模板方式测试, Freemaker 表现相当优秀,而网上一些朋友在单线程下比较,说得Freemaker很差是错误的,我在多线程,交叉模板方式下测试Freemaker 性能相当好, scriptMaker 在高压的时候约有优势,低压要弱一些。本测试没有使用io ,完全内存方式。
Freemaker 非常稳定,快,(但有缓存结果的嫌疑,有待验证),但要扩展功能不方便。
CommonTemplate:速度和稳定行的欠佳,多线程下容易错误,表达方式很丰富。
velocity: 运行很快, 多线程下容易错误,最快的是他,最容易出错的也是它,也许后边版本不会这样。
ScriptMark:稳定 速度在 Freemaker,velocity 之后,功能最丰富
smarty4j:稳定,单线程最快,多线程最慢的一个。
validator
验证,绑定在sober和txweb中使用
1.配置验证条件,和显示消息
例如:serialCode 字段名称,serialCodeMsg:html 里边div 显示的id
<validation dataType="isLengthBetween(1,50)" field="serialCode" msgId="serialCodeMsg" needed="false">
<message>证书编号</message>
<error>证书编号,没有填写</error>
<success>验证通过</success>
</validation>
2.sioc 中引入验证模块
<bean id="validator" class="com.jspx.txweb.support.ValidatorAction" singleton="false">
<string name="configFile">上边配置说保存的xml文件名称</string>
</bean>
3.页面中引入javascript
new Request.Validator("validator.${suffix}", "上边配置所在表单ID");jspxpool一个高并发连接池,使用jdk1.5新特性实现,处理了其他连接池不太注意的一些细节. 性能和稳定性都和c3p0有一比。路径和参数如下:
<bean id="jspxDataSource" class="com.jspx.datasource.JspxDataSource" destroy="close" singleton="true">
<string name="driverClass">${driverClassName}</string>
<string name="jdbcUrl"><![CDATA[${jdbcUrl}]]></string>
<string name="user">${username}</string>
<string name="password"><![CDATA[${password}]]></string>
<int name="maxPoolSize">${maxPoolSize}</int>
</bean>
dreamweaver For jspx
提供的一套dw8-10 的开发插件,后缀名ftl, 安装方法解压后覆盖相应的版本既可。
jmaker
开发java工具IDEA 的一个插件,能够自动生成这个构架的bean,DAO,action.view和配置,减少开发人员的工作量。
项目开始于2005年 2007 年开始开源 2010年 项目已经成熟
系统代码都使用最新的技术,所以JDK必须在1.6以上
推荐组合:
1. jdk1.6 + tomcat6.x + mysql 5.x
2. jdk1.6 + resin 3.x以上 + postgresql 8.4 以上