- 浏览: 697722 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (364)
- quick start (57)
- bboss aop (43)
- bboss mvc (48)
- bboss persistent (96)
- bboss taglib (30)
- bboss event (10)
- bbossgroups (52)
- bboss (32)
- bboss会话共享 (17)
- bboss rpc (7)
- bboss 国际化 (5)
- bboss 序列化 (9)
- bboss cxf webservice (8)
- bboss hessian (3)
- bboss 安全认证SSO (15)
- bboss 工作流 (6)
- 平台 (18)
- bboss quartz (3)
- 杂谈 (5)
- 大数据 (1)
- bboss elastic (24)
- bboss http (1)
- bboss kafka (1)
- Elasticsearch Scroll和Slice Scroll查询API使用案例 (1)
最新评论
-
qianhao123:
...
采用gradle构建和发布bboss方法介绍 -
qianhao123:
[img][/img]
采用gradle构建和发布bboss方法介绍 -
yin_bp:
欢迎大家参与working
高性能elasticsearch ORM开发库使用介绍 -
qq641879434:
万分感谢
bboss 持久层sql xml配置文件编写和加载方法介绍 -
yin_bp:
qq641879434 写道怎么设置配置文件 可以查看执行的S ...
bboss 持久层sql xml配置文件编写和加载方法介绍
bboss mvc参数绑定注解RequestParam使用说明
@RequestParam作为控制器方法参数、bean对象属性的注解,可以起到以下5个作用:
1.指定方法参数与request请求参数名称的映射关系
方法参数-当方法参数名称yournames和request参数名称name不一致时,则需要RequestParam注解来指定映射关系
bean属性-当属性名称favovate 和request参数名称favovate_ddd不一致时,则需要RequestParam注解来指定映射关系
这个只是最简单的映射方式,bboss mvc还支持带变量的参数名称映射方式:
这里@RequestParam(name="favovate${id}")中的name属性的值为favovate${id},其中的${id}部分的含义是request参数的名称由favovate加上另外一个request参数id的值组合而成,也就是是这个参数名称根据id参数的值来动态生成,这种情况适用于集合参数绑定场景(简单的参数映射也可以使用):
表单代码,输入两个人的姓名和兴趣喜好,提交后绑定成List<ExampleBean> yourname参数
控制器方法:
ExampleBean类的favovate属性分别对应于表单中的favovate0和favovate1,也就是说每条记录对应一组radio的名称都不一样,由favovate+记录id的值组成:
那么在后台就可以通过favovate${id}来指定request参数和属性favovate的映射关系
@RequestParam(name="favovate${id}")
private int favovate ;
目前变量参数名中只能指定一个变量,这个变量在参数名称中的位置可以任意有以下形式:
favovate${id}:假设请求参数id的值为1,那么最终的映射参数名称为favovate1
fav${id}ovate:假设请求参数id的值为1,那么最终的映射参数名称为fav1ovate
${id}favovate:假设请求参数id的值为1,那么最终的映射参数名称为1favovate
也可以只有变量:
${id}:假设请求参数id的值为1,那么最终的映射参数名称为1
变量参数中如果请求参数id的值为null或者""时,变量id对应的名称部分将被忽略,所以一般需要注意这一点。
在控制器方法参数上简单的使用参数变量的示例:
2.指定参数的解码字符集
@RequestParam( decodeCharset = "UTF-8")
private String name;
3.指定日期格式
示例如下:
@RequestParam( dateformat="yyyy-MM-dd") java.util.Date[] d12
4.指定参数的默认值
示例如下:
@RequestParam(defaultvalue="0") int ynum
5.指定参数值转换器Editor
如果请求参数和要绑定的参数类型不能直接转换时需要通过Editor来实现自定义的参数绑定和类型转换,下面是一个实例:
转换器org.frameworkset.mvc.ListStringArrayEditor定义如下:
mvc框架参数绑定时,如果指定了类型为ArrayEditorInf的属性编辑器, 则要求mvc框架传入的参数为参数数组,否则只能传入单个值。这个转换器有点复杂,可以看一个简单一点的转换器:
EditorInf类型的editor专门处理单个参数值的转换,ArrayEditorInf类型的editor专门处理数组参数转换;通过这两种类型的editor我们可以实现复杂的参数类型转换。
更多详细信息请参考bboss mvc的参数绑定测试用例:
HelloWord.java
hello.jsp
@RequestParam作为控制器方法参数、bean对象属性的注解,可以起到以下5个作用:
1.指定方法参数与request请求参数名称的映射关系
方法参数-当方法参数名称yournames和request参数名称name不一致时,则需要RequestParam注解来指定映射关系
public String sayHelloArray( @RequestParam(name = "name") String[] yournames, ModelMap model)
bean属性-当属性名称favovate 和request参数名称favovate_ddd不一致时,则需要RequestParam注解来指定映射关系
@RequestParam(name="favovate_ddd") private int favovate ;
这个只是最简单的映射方式,bboss mvc还支持带变量的参数名称映射方式:
@RequestParam(name="favovate${id}") private int favovate ;
这里@RequestParam(name="favovate${id}")中的name属性的值为favovate${id},其中的${id}部分的含义是request参数的名称由favovate加上另外一个request参数id的值组合而成,也就是是这个参数名称根据id参数的值来动态生成,这种情况适用于集合参数绑定场景(简单的参数映射也可以使用):
表单代码,输入两个人的姓名和兴趣喜好,提交后绑定成List<ExampleBean> yourname参数
<tr><td> <input name="id" type="hidden" value="0"> 请输入您的名字: <input name="name" type="text"> </td> </tr> <tr><td>喜好: <input name="favovate0" type="radio" checked="true" value="0"> 乒乓球 <input name="favovate0" type="radio" value="1"> 篮球 <input name="favovate0" type="radio" value="2"> 排球 </td> </tr> <tr><td> <input name="id" type="hidden" value="1"> 请输入您的名字: <input name="name" type="text"> </td> </tr> <tr><td>喜好: <input name="favovate1" type="radio" checked="true" value="0"> 乒乓球 <input name="favovate1" type="radio" value="1"> 篮球 <input name="favovate1" type="radio" value="2"> 排球 </td> </tr>
控制器方法:
public String sayHelloBeanList(List<ExampleBean> yourname, ModelMap model) { model.addAttribute("serverHelloListBean", yourname); return "path:sayHello"; }
ExampleBean类的favovate属性分别对应于表单中的favovate0和favovate1,也就是说每条记录对应一组radio的名称都不一样,由favovate+记录id的值组成:
public class ExampleBean { private String id; private String name = null; private String sex = null; @RequestParam(name="favovate${id}") private int favovate ; }
那么在后台就可以通过favovate${id}来指定request参数和属性favovate的映射关系
@RequestParam(name="favovate${id}")
private int favovate ;
目前变量参数名中只能指定一个变量,这个变量在参数名称中的位置可以任意有以下形式:
favovate${id}:假设请求参数id的值为1,那么最终的映射参数名称为favovate1
fav${id}ovate:假设请求参数id的值为1,那么最终的映射参数名称为fav1ovate
${id}favovate:假设请求参数id的值为1,那么最终的映射参数名称为1favovate
也可以只有变量:
${id}:假设请求参数id的值为1,那么最终的映射参数名称为1
变量参数中如果请求参数id的值为null或者""时,变量id对应的名称部分将被忽略,所以一般需要注意这一点。
在控制器方法参数上简单的使用参数变量的示例:
public String sayHelloStringVar(@RequestParam(name = "name${id}") String yourname, ModelMap model)
2.指定参数的解码字符集
@RequestParam( decodeCharset = "UTF-8")
private String name;
3.指定日期格式
示例如下:
@RequestParam( dateformat="yyyy-MM-dd") java.util.Date[] d12
4.指定参数的默认值
示例如下:
@RequestParam(defaultvalue="0") int ynum
5.指定参数值转换器Editor
如果请求参数和要绑定的参数类型不能直接转换时需要通过Editor来实现自定义的参数绑定和类型转换,下面是一个实例:
public String sayHelloEditors(@RequestParam(editor="org.frameworkset.mvc.ListStringArrayEditor") List<String[]> name,ModelMap model)
转换器org.frameworkset.mvc.ListStringArrayEditor定义如下:
public class ListStringArrayEditor implements ArrayEditorInf<List<String[]>> { @Override public List<String[]> getValueFromObject(Object fromValue) { if(fromValue == null) return null; if(fromValue instanceof String[]) { String[] datas = (String[])fromValue; if(datas.length<=0) return null; List<String[]> ret = new ArrayList<String[]>(); for(String data :datas) { String[] tt = data.split(","); ret.add(tt); } return ret; } return null; } @Override public List<String[]> getValueFromString(String fromValue) { return null; } }
mvc框架参数绑定时,如果指定了类型为ArrayEditorInf的属性编辑器, 则要求mvc框架传入的参数为参数数组,否则只能传入单个值。这个转换器有点复杂,可以看一个简单一点的转换器:
public class ListEditor implements EditorInf<List<String>> { public List<String> getValueFromObject(Object fromValue) { if(fromValue == null || fromValue.equals("")) return null; return getValueFromString(String.valueOf( fromValue)); } public List<String> getValueFromString(String fromValue) { List<String> ret = new ArrayList<String>(); String[] datas = fromValue.split(","); for(String data :datas) { ret.add(data); } return ret; } }
EditorInf类型的editor专门处理单个参数值的转换,ArrayEditorInf类型的editor专门处理数组参数转换;通过这两种类型的editor我们可以实现复杂的参数类型转换。
更多详细信息请参考bboss mvc的参数绑定测试用例:
HelloWord.java
hello.jsp
评论
2 楼
yin_bp
2014-09-12
请将下面代码中的dataformat(用来格式化数字的属性)修改为dateformat属性试试
@RequestParam(dataformat="yyyy-MM-dd")
private Date startime;
@RequestParam(dataformat="yyyy-MM-dd")
private Date endtime;
修改后应该为:
@RequestParam(dateformat="yyyy-MM-dd")
private Date startime;
@RequestParam(dateformat="yyyy-MM-dd")
private Date endtime;
@RequestParam(dataformat="yyyy-MM-dd")
private Date startime;
@RequestParam(dataformat="yyyy-MM-dd")
private Date endtime;
修改后应该为:
@RequestParam(dateformat="yyyy-MM-dd")
private Date startime;
@RequestParam(dateformat="yyyy-MM-dd")
private Date endtime;
1 楼
ljthinkpad
2014-09-12
@RequestParam(dataformat="yyyy-MM-dd")
private Date startime;
@RequestParam(dataformat="yyyy-MM-dd")
private Date endtime;
前台传入如 2014-09-12 的日期 ,后台报错:
[com.frameworkset.util.ValueObjectUtil] Unparseable date: "2014-09-12"
java.text.ParseException: Unparseable date: "2014-09-12"
at java.text.DateFormat.parse(Unknown Source)
at com.frameworkset.util.ValueObjectUtil.convertObjToDateWithDateformat(ValueObjectUtil.java:2003)
at com.frameworkset.util.ValueObjectUtil.convertObjToDate(ValueObjectUtil.java:1944)
at com.frameworkset.util.ValueObjectUtil.basicTypeCast(ValueObjectUtil.java:1722)
at com.frameworkset.util.ValueObjectUtil.typeCast(ValueObjectUtil.java:1233)
at com.frameworkset.util.ValueObjectUtil.typeCast(ValueObjectUtil.java:604)
private Date startime;
@RequestParam(dataformat="yyyy-MM-dd")
private Date endtime;
前台传入如 2014-09-12 的日期 ,后台报错:
[com.frameworkset.util.ValueObjectUtil] Unparseable date: "2014-09-12"
java.text.ParseException: Unparseable date: "2014-09-12"
at java.text.DateFormat.parse(Unknown Source)
at com.frameworkset.util.ValueObjectUtil.convertObjToDateWithDateformat(ValueObjectUtil.java:2003)
at com.frameworkset.util.ValueObjectUtil.convertObjToDate(ValueObjectUtil.java:1944)
at com.frameworkset.util.ValueObjectUtil.basicTypeCast(ValueObjectUtil.java:1722)
at com.frameworkset.util.ValueObjectUtil.typeCast(ValueObjectUtil.java:1233)
at com.frameworkset.util.ValueObjectUtil.typeCast(ValueObjectUtil.java:604)
发表评论
-
bboss mvc控制器方法跳转地址设置方法介绍
2017-12-09 21:52 913bboss mvc控制器方法跳转地址设置方法介绍 1.直接指 ... -
bboss mvc json插件设置日期类型格式方法
2017-02-28 11:33 746bboss mvc json插件设置日期类型格式方法 一般的 ... -
bboss mvc控制器实现etag和last modify两种http缓存机制
2016-09-07 23:48 1272bboss mvc控制器实现etag和last modify两 ... -
bboss wordpdf构建部署介绍
2016-09-02 15:47 571bboss wordpdf构建部署介绍 下载 源码下载地址: ... -
解决tomcat stop报Illegal access: this web application instance has been stopped异常方法
2015-12-26 23:41 5963解决tomcat stop报Illegal access: t ... -
bboss mvc文件上传实例
2015-06-08 11:13 37本文着重介绍bboss mvc文件上传功能,切入正题 功能点 ... -
bboss mvc @RequestBody注解使用说明
2014-10-23 15:53 1055@RequestBody可以将客户端请求报文体通过数据类型转换 ... -
bboss安全认证过滤器认证后重定向到请求页面功能介绍
2014-10-12 10:55 1351本文介绍bboss安全认证 ... -
bboss mvc控制器方法响应报文注解ResponseBody使用说明
2014-09-20 22:39 1197bboss mvc控制器方法响应 ... -
bboss mvc启动事件监听器使用方法
2014-09-02 20:25 1162在实际应用,往往需要在mvc容器启动后执行相应的操作,bbos ... -
bboss session共享使用方法介绍
2014-05-10 16:12 6153bboss session共享使用方法 ... -
bboss将一个组件同时发布为webservice,hessian,http三种服务方法介绍
2014-04-12 14:31 1659bboss将一个组件同时发布为webservice,hessi ... -
bboss发布apache cxf 2.7.6服务和定义客户端服务实例可能产生冲突解决办法
2014-03-22 23:16 1094bboss发布apache cxf 2.7.6服务和定义客户端 ... -
bboss mvc接收和响应xml格式数据的方法
2013-12-28 19:14 1076本文介绍bboss mvc接收和响应xml格式数据的方法 1 ... -
bboss mvc忽略对bean属性进行参数绑定方法
2013-10-10 20:20 975bboss mvc忽略对bean属性进行参数绑定方法非常简单, ... -
bboss mvc参数绑定注解MapKey使用说明
2013-08-10 23:27 1191bboss mvc参数绑定注解MapK ... -
bboss mvc获取request,session,response,pageContext对象方法
2013-07-12 13:19 1391本文介绍基于bboss mvc后台java程序如何获取requ ... -
bboss mvc ajax响应输出中文乱码解决方法
2013-07-10 23:08 1073对于bboss mvc ajax请求响应出现的中文乱码问题,怎 ... -
bboss libreoffice结合使用说明
2012-12-23 23:03 1288bboss libreoffice结合使用说明已经文件下载插件 ... -
bboss 属性编辑器在mvc中的应用
2012-11-22 13:25 838bboss 中提供了EditorInf属 ...
相关推荐
在“bboss mvc开发手册.doc”中,我们可能会找到关于如何使用BBoss MVCDemo进行开发的详细指南。 首先,让我们深入了解BBoss MVCDemo的核心特性: 1. **模型(Model)**:BBoss MVCDemo支持多种数据访问方式,如JDBC...
标题中的“bboss mvc 通过jsonp实现跨站跨域远程访问”指的是使用bboss MVC框架来处理JSONP(JSON with Padding)请求,以克服浏览器的同源策略限制,实现跨域数据交互。bboss MVC是一个Java Web开发框架,它提供了...
NULL 博文链接:https://yin-bp.iteye.com/blog/1131637
官方版本,亲测可用
本文将深入讲解bbossgroups开发系列文章之一中的最佳实践,涉及bboss MVC框架的基础配置、控制器、数据库访问、DAO组件、业务组件管理以及与前端的交互等方面。 首先,我们来了解bboss MVC框架的基础配置。bboss-...
该工具是一款基于bboss...此工具能够自动生成bboss MVC、IOC、持久化、JSP、i18n、SQL配置文件、Web服务、Hessian服务等相关源代码,适用于快速开发和项目迭代。详细文档请参考:http://yin-bp.iteye.com/blog/2256948
BBoss安全认证过滤器是Java Web开发中一种用于实现用户身份验证和权限控制的重要组件。在Web应用程序中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP之前进行预处理,以及在...
本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...
自动代码生成器是针对bboss框架和bboss开发平台的自动代码生成工具,可以根据模板,自动生成给定表的增,删,改,分页查询,列表查询,国际化功能对应的程序和配置文件: 1.mvc控制器 2.业务组件 3.实体类 4.jsp文件...
当需要使用外部属性文件时,我们可以创建一个独立的`.properties`文件,如`config.properties`,这个文件可以包含应用程序的配置参数,如数据库连接字符串、服务器端口等。 在`config.properties`中,键值对的形式...
例如,在一个域下的多个子应用之间,使用bboss可以共享认证信息,用户登录其中一个应用后,无需再次登录即可访问其他应用。 文档中提到了会话共享需要解决的五大技术难题: 1. session数据序列化问题,即如何有效...
BBoss(全称为bbossgroups)是一个专为企业级J2EE应用设计的开源框架,它为Java开发者提供了一系列强大的工具和服务,以简化Web应用程序的开发过程。该框架旨在提高开发效率,降低维护成本,同时保持高度的灵活性和...
5. **配置BBoss**: 根据项目需求,配置 BBoss 的连接参数,如集群地址、端口等。 **四、开发入门** 1. **创建索引**: 使用 BBoss 提供的 API 创建索引,指定映射(Mapping)以便对数据类型进行定义。 2. **插入数据...
5. **数据库连接**:bboss通常需要与数据库进行交互,所以要确保你有合适的数据库服务器(如MySQL、Oracle等)并配置相应的数据库连接参数。 6. **启动服务器**:根据bboss提供的文档,启动内置的应用服务器(如...
在`demo`这个文件中,可能包含了使用bboss操作Elasticsearch的基本示例代码。例如,创建索引、插入文档、执行查询等。通常,这些示例会展示如何初始化bboss客户端,如何构造和执行DSL查询,以及如何处理返回结果。 ...