首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

string-地图-prefix string-list-suffix

2012-07-26 
string-map-prefix string-list-suffix一般service都是用在event,所以主要看serviceeventhandler就可以了。

string-map-prefix string-list-suffix
一般service都是用在event,所以主要看serviceeventhandler就可以了。

先看string-map-prefix

在serviceeventhandler中的代码

  Map<String, Object> serviceContext = FastMap.newInstance();
        for (ModelParam modelParam: model.getInModelParamList()) {
            String name = modelParam.name;
ofbiz10大概是233行


其中有

if (UtilValidate.isNotEmpty(modelParam.stringMapPrefix)) {
                Map<String, Object> paramMap = UtilHttp.makeParamMapWithPrefix(request, multiPartMap, modelParam.stringMapPrefix, null);

可以看出来makeParamMapWithPrefix才是将参数解析成map的代码
解析方式大概是
查找每个请求字段,看字段的名字是否以string-map-prefix开头
假设配置
<attribute name="names" mode="IN" type="Map"
string-map-prefix="_o_"></attribute>
请求

127.0.0.1:8080/l/control/processFirstForm?_o_names_1=1&_o_names_2=2

那么最后names这个map有内容
{names_1=1, names_2=2}
可以看到,只要_o_开头的参数都被解析成了map中的元素,另外一点就是前缀之后的参数名就是这个map的key了,如_o_names_1=1请求参数的names_1就是一个key。

string-list-suffix和string-map-prefix有点类似
通过
List<Object> paramList = UtilHttp.makeParamListWithSuffix(request, multiPartMap, modelParam.stringListSuffix, null);完成参数转化

请求http://127.0.0.1:8080/l/control/processFirstForm?names_o_=1&names1_o_=2
发送过去后,解析的时候,只要是以_o_结尾的参数,都会被加入到list,那么
names_o_=1&names1_o_=2
两个参数都是以_o_结尾的,自然都是会被加入到list中。
解析后的list有两个元素,分别是1和2。

热点排行