论坛首页 Java企业应用论坛

bboss mvc控制器方法响应报文注解ResponseBody使用说明

浏览 3470 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2014-09-20   最后修改:2014-09-20
bboss mvc控制器方法响应报文注解ResponseBody使用说明

@ResponseBody注解被应用于控制器方法的响应值上,可以为应用程序丰富便捷的功能,下面分别说明。
1.将字符串作为响应报文返回到客户端
public @ResponseBody  String deleteRequester(  String id)


可以在bboss-mvc.xml配置中全局指定响应String报文的字符编码:
<property class="org.frameworkset.http.converter.StringHttpMessageConverter" f:responseCharset="UTF-8"/>

2.将对象作为json报文响应报文返回到客户端
public @ResponseBody(datatype = "json")  List<POBean> getRequesters(  String condition)

bboss mvc可以将各种对象转换为json格式报文返回给客户端

3.将对象作为jsonp报文响应报文返回到客户端
public @ResponseBody(datatype = "jsonp")  List<POBean> getRequesters(  String condition)

bboss mvc可以将各种对象转换为jsonp格式报文返回给客户端,jsonp报文与json报文类似,都是响应json格式的报文,区别就是jsonp报文方法可以接受跨站请求,而json报文方法不可以。

4.注解File对象提供文件下载功能
public @ResponseBody File downFile( String fileid)


5.注解Resource类型提供资源下载功能
包括以下类型:
ClassPathResource -- 适用于应classpath下面的各种资源
ServletContextResource --适用于web应用根目录及子目录下的各种资源
FileSystemResource --适用于文件系统中各种文件资源
UrlResource --适用于url连接对应各种资源
ByteArrayResource--适用于二进制资源

例如:
public @ResponseBody
	Resource exportExeclTemplate() throws Exception {
		
		String fileName = "com/sany/mms/background/action/exceldata.xls";
		
		ClassPathResource classpath = new ClassPathResource(fileName);
		return classpath;
	}


6.注解FileBlob对象,实现文件、url资源的下载和浏览功能
下载:FileBlob对象主要是用来直接下载Blob对象和InputStream流对象,同时可以指定一个下载文件名,实例如下:
public @ResponseBody
	FileBlob exportExeclTemplate() throws Exception {
		
		String fileName = "com/sany/mms/background/action/exceldata.xls";
		FileBlob fb = new FileBlob ("exceldata.xls",new FileInputstream(new File(fileName)))//下载文件流
                FileBlob fb = new FileBlob ("exceldata.xls",Blob对象) //实现对数据库blob对象的下载功能
                FileBlob fb = new FileBlob ("test.xml",new URL("http://localhost:8080/bboss/test.xml"));//下载url地址对应的资源
		return fb;
	}


浏览:通过FileBlob对象实现资源的浏览功能,实现浏览功能非常简单,设置FileBlob的rendtype属性值为FileBlob.BROWSER即可,例如:
public @ResponseBody
	FileBlob exportExeclTemplate() throws Exception {
		
		String fileName = "com/sany/mms/background/action/exceldata.xls";
		FileBlob fb = new FileBlob ("exceldata.xls",new FileInputstream(new File(fileName)))//下载文件流
                fb.setRendtype(FileBlob.BROWSER)
		return fb;
	}


@ResponseBody注解主要就这么多功能了,以后有更好的特性再加上去。
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics