阅读更多

5顶
5踩

开源软件

原创新闻 bbossgroups 3.3 发布,开源J2EE框架

2011-08-15 10:17 by 正式记者 yin_bp 评论(11) 有7907人浏览
bbossgroups 3.3 发布,该版本在3.2的基础上做了非常多的功能增强和功能改进,具体情况参考后面的功能点清单。

项目博客:
http://yin-bp.iteye.com/

项目sourceforge下载地址:
http://sourceforge.net/projects/bboss/files/

项目官网:
http://www.bbossgroups.com

release version : bbossgroups-3.3
release date: 2011/08/14
********************************************************
release futures:
************************************************bbossgroups-3.3******************************
1.aop/ioc

◆ 增加netty协议消息大小配置参数,解决爆炒过默认1M时发送失败的问题
<!-- 能够解码的最大数据size,超过时,将抛异常,默认20M -->
<property name="maxFramgeLength_" value="20971520" />

<!-- 编码块大小 -->
<property name="estimatedLength_" value="1024" />
◆ 修改默认服务发布时,serviceport带了ws:前缀
◆ 修复注入属性缺陷:
当属性值注入以后没有立即退出注入循环,而是把循环跑完,对性能有一定的影响。
修改程序:
/bbossaop/src/org/frameworkset/spi/assemble/BeanAccembleHelper.java
◆ 修复配置文件sql不能安照特定数据库类型或者到指定数据库sql语句的缺陷

2.mvc

◆ 控制器方法参数绑定机制增加MultipartFile、MultipartFile[]类型绑定支持,必须和RequestParam注解一起使用,使用方法如下:
public String uploadFileWithMultipartFile(@RequestParam(name="upload1")  MultipartFile file,
			ModelMap model)
public String uploadFileWithMultipartFiles(@RequestParam(name="upload1")  MultipartFile[] files,
			ModelMap model)

◆ PO对象属性数据绑定机制增加MultipartFile、MultipartFile[]类型绑定支持,可以和RequestParam注解一起使用,也可以直接与属性名称直接绑定,使用方法如下:
public String uploadFileWithFileBean(FileBean files)

FileBean是一个自定义的java bean,结构如下:
public class FileBean
{
	private MultipartFile upload1;
	@RequestParam(name="upload1")
	private MultipartFile[] uploads;
	@RequestParam(name="upload1")
	private MultipartFile anupload;
	//省略属性的get/set方法
}	

◆ 完善@ResponseBody注解,增加直接对文件下载功能的支持,只要控制器方法返回File对象即可
◆ 完善认证拦截器功能,增加认证失败后跳转页面的方式为redirect和forward两种,可以在拦截器上配置directtype属性
来实现具体的跳转方式:
<property class="org.frameworkset.web.interceptor.MyFirstInterceptor">
     			<!-- 配置认证检查拦截器拦截url模式规则 -->
     			<property name="patternsInclude">
     				<list componentType="string">
     					<property value="/**/*.htm"/>
     				</list>
     			</property>
     			<!-- 配置认证检查拦截器不拦截url模式规则 -->
     			<property name="patternsExclude">
     				<list componentType="string">
     					<property value="/*.html"/>
     				</list>
     			</property>
     			<property name="redirecturl" value="/login.jsp"/>
     			<property name="directtype" value="forward"/>
     		</property>

◆ 修复mvc分页跳转页码为负数时,不能正常分页的问题
◆ 修复ResponseBody指定数据返回类型和字符集不生效的问题

3.persistent

◆ 处理日期和时间类型时转换为字符串时,如果值为空时抛出空指针异常的问题修复
◆ 解决sql server元数据获取为空的问题
◆ 改进SQLParams api,可以直接对MultipartFile对象存入clob或者blob列。
sqlparams.addSQLParam("FILECONTENT", multipartfile,SQLParams.BLOBFILE);

对于大字段的处理建议采用以下方法:
sqlparams.addSQLParam("FILECONTENT", multipartfile,SQLParams.BLOBFILE);//直接传递MultipartFile对象进行插入
sqlparams.addSQLParam("FILECONTENT", inputStream, size,SQLParams.BLOBFILE);//直接传递InputStream对象以及流大小Size属性进行插入

◆ 增加FieldRowHandler处理器,以便实现从blob/clob中获取单个字段文件对象的处理,其他类似类型数据也可以使用FieldRowHandler,使用示例如下:
public File getDownloadClobFile(String fileid) throws Exception
	{
		try
		{
			return SQLExecutor.queryTField(
											File.class,
											new FieldRowHandler<File>() {

												@Override
												public File handleField(
														Record record)
														throws Exception
												{

													// 定义文件对象
													File f = new File("d:/",record.getString("filename"));
													// 如果文件已经存在则直接返回f
													if (f.exists())
														return f;
													// 将blob中的文件内容存储到文件中
													record.getFile("filecontent",f);
													return f;
												}
											},
											"select * from CLOBFILE where fileid=?",
											fileid);
		}
		catch (Exception e)
		{
			throw e;
		}
	}

◆ 增加对文件上传入库和从db下载功能的支持,使用实例
上传
public boolean uploadFile(InputStream inputStream,long size, String filename) throws Exception {
		boolean result = true;
		String sql = "";
		try {
			sql = "INSERT INTO filetable (FILENAME,FILECONTENT,fileid,FILESIZE) VALUES(#[filename],#[FILECONTENT],#[FILEID],#[FILESIZE])";
			SQLParams sqlparams = new SQLParams();
			sqlparams.addSQLParam("filename", filename, SQLParams.STRING);
			sqlparams.addSQLParam("FILECONTENT", inputStream, size,SQLParams.BLOBFILE);
			sqlparams.addSQLParam("FILEID", UUID.randomUUID().toString(),SQLParams.STRING);
			sqlparams.addSQLParam("FILESIZE", size,SQLParams.LONG);
			SQLExecutor.insertBean(sql, sqlparams);			
			
		} catch (Exception ex) {
			ex.printStackTrace();
			result = false;
			throw new Exception("上传附件关联临控指令布控信息附件失败:" + ex);
		} finally {
			if(inputStream != null){
				inputStream.close();
			}
		}
		return result;
	}

下载
SQLExecutor.queryByNullRowHandler(new NullRowHandler(){
				@Override
				public void handleRow(Record record)
						throws Exception
				{
					record.getBlob("filecontent").getBinaryStream();
					StringUtil.sendFile(request, response, record.getString("filename"),record.getBlob("filecontent"));
				}}, "select * from filetable where fileid=?",fileid);

◆ 如果没有指定一条sql语句,PreparedDBUtil.executePreparedBatch将报出异常,这个不是很合理
直接改为info方式。

4.taglib

◆ 增加map和mapkey两个标签,用来循环迭代展示map中的value对象值或者value对象中的数据值以及mapkey值
使用方法如下:
<table>
	    <h3>map<String,po>对象信息迭代功能</h3>
		<pg:map requestKey="mapbeans">
		
			<tr class="cms_data_tr">
				<td>
					mapkey:<pg:mapkey/>
				</td> 
				<td>
					id:<pg:cell colName="id" />
				</td> 
				<td>
					name:<pg:cell colName="name" />
				</td> 
			</tr>
		</pg:map>
		
		
	</table>
	
	<table>
	    <h3>map<String,String>字符串信息迭代功能</h3>
		<pg:map requestKey="mapstrings">
		
			<tr class="cms_data_tr">
				<td>
					mapkey:<pg:mapkey/>
				</td> 
				<td>
					value:<pg:cell/>
				</td> 
				
			</tr>
		</pg:map>
		
		
	</table>

◆ cell标签提供actual属性,可以直接输出改属性设定的值,值可以为el表达式的值
◆ 修改empty和notempty两个逻辑标签增加对Collection和Map对象的为empty判断支持
◆ 修改rowcount标签,去除多余的空格
◆ 完善标签排序功能补丁
增加相应的指示箭头,标识升序和降序
相关文件
/bboss-mvc/WebRoot/include/pager.css
WebRoot\WEB-INF\lib\frameworkset.jar

5.util

◆ StringUtil类中增加文件下载方法:
StringUtil.sendFile(request, response, record
							.getString("filename"), record
							.getBlob("filecontent"));
StringUtil.sendFile(request, response, file);	

◆ 支持数字向BigDecimal转换、数字数组向BigDecimal数组转换功能
5
5
评论 共 11 条 请登录后发表评论
11 楼 wangqianmail_87 2011-08-17 15:02
非常喜欢bbossgroups,我的最爱
10 楼 KimHo 2011-08-16 15:49
bboss的发音,让我联想到一项很热门的表演:beat-box……
9 楼 yin_bp 2011-08-15 22:52
有篇介绍bbossgroups特色的文章,感兴趣的童鞋不妨看看:
http://yin-bp.iteye.com/blog/1140967
8 楼 yin_bp 2011-08-15 22:32
caoyangx 写道
我倒是觉得Nutz更好些。

bbossgroups是一个新兴的j2ee框架,确实需要向先辈们好好学习,加油吧,大家一起努力。
7 楼 caoyangx 2011-08-15 22:21
我倒是觉得Nutz更好些。
6 楼 yin_bp 2011-08-15 17:40
StringUtil
hlylove 写道
StringUtil类中增加文件下载方法?很奇怪的StringUtil,你要是FileUtil还行。


这都被你看出来了,看来是要调整一下,呵呵,不过功能是没有问题的,一个静态方法,传入你的request,response,File(或者包含文件的blob字段)就可以完场文件下载,还支持断点续传,何乐而不为,bboss mvc的控制方法直接下载文件就是通过调用这个方法实现的:
public @ResponseBody File downloadFileFromFile(@RequestParam(name = "fileid") String fileid) 


通过fileid找到对应的file对象,返回File就可以下载了。
5 楼 hlylove 2011-08-15 16:25
StringUtil类中增加文件下载方法?很奇怪的StringUtil,你要是FileUtil还行。

4 楼 jdkleo 2011-08-15 14:30
框架太多了,大大小小的框架N多,还有不断的N个版本的发放,用它的还要学它的方法。没意思,掌握几个经典的,工作中用到的足以。关键关注基础和技巧以及编程的思想。
3 楼 kjj 2011-08-15 12:37
老实说,贴这么一大堆,没看出重点在哪里啊
2 楼 zhiyong_sun 2011-08-15 12:30
顶,上焦点了。
1 楼 semmy 2011-08-15 12:09
。。。。。。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 密码查看器

    晨风星号密码查看器支持winxp、win7等所有windows平台,不但支持查看Outlook、FTP等桌面软件窗口下的密码,也支持查看Gmail、yahoo等网页式星号密码,还支持找回宽带拨号密码以及存储在路由器中的ADSL密码。此软件体积小,运行快,操作简便,是目前网上已知的最强大的星号密码查看器。

  • 遗忘密码快速检索工具:密码查看器

    本文还有配套的精品资源,点击获取 简介:密码查看器是一种软件工具,旨在帮助用户查找和管理他们可能遗忘的密码。这些工具设计用于快速且方便地访问保存在浏览器或密码管理器中的密码。它为用户提供了一个直观的界面和高效的检索机制,以避免复杂的操作和时间消耗。文件包含一个Windows安装程序和一个说明文档,指导用户如何使用该工具。使用此类工具时,应确保安全,例如仅从可信来源下载,并遵...

  • ASSA脚本指令EO之谈

    ASSA脚本指令EO之谈 2011-04-03 17:15:43| 分类: 石器脚本 assa |字号 订阅 下载LOFTER我的照片书 | ASSA脚本指令EO之谈 MaxPower你不用吧…大家同区的,拿个喇叭大叫就有人会通知我,不必在各论坛大叫!~` 该给飞天爷爷锁了…!~发帖换个角度! 步入正题: ASSA脚本指令里面的EO(简称防卡指令)指令,很容易造成人物错位,导致您所说的人物位置...

  • 忘记密码,如何在登陆过的网站查看加密后的密码

    以谷歌浏览器为例,查看经过页面加密处理过的密码。 1、打开网站页面,按F12打开 开发者工具 2、点击开发者工具左上角的箭头图标,然后点击密码输入框 3、可以看到开发者工具的Elements里有淡蓝色标识的一行html代码 4、在这一行代码里有个 type="password"的字段,修改password为text 5、密码输入框输入密码测试,密码输入框显示密码。 ...

  • 电脑wifi密码查看器 v1.0

    电脑wifi密码查看器 v1.0 是一款免费的wifi密码查看工具 能够查看当前电脑连接过的 wifi 密码! 软件支持 win7 win8 win10 系统! 支持保存文件等操作! 下载地址:http://pan.baidu.com/s/1b10SAa

  • delphi下实现控制其它窗体中的控件[转]

    ====================================================== 注:本文源代码点此下载 ====================================================== 首先申明:我是菜鸟,我只不过想把困绕了我很长时间的问题的解决方案发表出来,免得以后我又忘记,同时给还不知道这些小知识的同僚一些帮助。各位不要笑我的

  • 使你能快速方便查看遗忘的密码的密码查看器

    使你能快速方便查看遗忘的密码的密码查看器

  • 黑点密码查看器

    黑点密码查看器,用于查看网页上输入的黑点密码信息。

  • 密码查看器(看星号密码比较管用)

    一个可以查看*好的软件,虽然很多这方面的软件,但我觉得这款很不错。

  • 星号密码查看器

    还在为密码框里面的星号或者原点密码而烦劳咩?呵呵,看看这个,一定能解决你的烦恼.表示亲测可用。

  • Access 密码查看器

    本软件非常小巧,运行简单,用于查看带有密码的Access数据库

  • 密码查看器|简单快捷的工具

    本程序可查看Windows系统文本编辑控件以及网页密码文本中以‘******’显示的密码的实际内容。使用时请拖动放大镜图标到想查看的密码窗口上面,这时你就可从查看器窗口的密码栏内看到实际的密码。 使用密码查看器的目的在于自己忘记某个密码时,利用密码查看器从计算机保存的密码中重新取得。请勿将此软件用于损害他人利益的非法用途中,否则后果自负。

  • C++练习题-设计一个密码检测程序

    // // t06.cpp // C++PLUS // // Created by mac on 2019/12/10. // Copyright © 2019 mac. All rights reserved. // #include &lt;stdio.h&gt; #include&lt;iostream&gt; #include&lt;string&gt; using name...

  • 开发者模式下获取网站密码

    获取表单中密码对应的id 2.在控制台中输入 document.getElementById(“user[password]”).value 结果如下,出现的testpassword 就是我输入的密码

  • 1081 检查密码——C++实现

    题目 1081 检查密码 (15 point(s)) 本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点 .,还必须既有字母也有数字。 输入格式: 输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行给出一个用户设置的密码,为不超过 80 个字符的非空字符串,以回车结束。 输出格式...

  • 网站加密密码查看(或者破解)

    从源代码中查看到的加密算法(MD5 单次加密) ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190705112059582.png public static string MD5(this string str) { if (string.IsNullOrEmpty(str)) { return string.Empty; } MD5CryptoServ...

  • MFC通过窗口名字(caption的内容)查找窗口,并将其隐藏或者置顶显示

    1、下面的代码可以通过窗口的名字找到置顶的窗口对象 CWnd*m_TestWnd = FindWindow(NULL,_T("Hello,Test window")); if (NULL !=m_TestWnd) { m_TestWnd-&gt;ShowWindow(SW_HIDE); } 上述代码可以将窗口隐藏,如果将隐藏的窗口显示则调用ShowWindow(SW_S...

Global site tag (gtag.js) - Google Analytics