- 浏览: 940577 次
- 性别:
- 来自: 江西上饶
文章分类
- 全部博客 (460)
- p.spring (56)
- p.maven (20)
- p.ant (17)
- p.jee (18)
- p.jse (33)
- p.ofbiz (31)
- p.软件工程 (8)
- p.struts2 (5)
- p.hibernate (5)
- linux (25)
- 设计模式 (2)
- p.javascript (11)
- 硬件 (1)
- p.jsp (2)
- p.windows批处理 (1)
- 操作系统问题 (5)
- 算法 (1)
- p.mysql (7)
- p.sql (5)
- p.c (1)
- google产品 (0)
- 内存 (1)
- p.struts (1)
- p.freemarker (7)
- p.css (4)
- p.log4j (10)
- p.html (3)
- 淘宝产品 (0)
- 其他 (3)
- 编译器 (0)
- svn (4)
- p.spring.security (11)
- 图形 (0)
- p.xml (1)
- p.ssh (0)
- p.jquery (4)
- p.jdbc (3)
- p.flex (0)
- p.c++ (0)
- p.c#Net (0)
- p.assembly (0)
- p.sqlserver (0)
- p.其他 (3)
- p.webwork (21)
- p.wap (12)
- p.cglib (1)
- p.jee服务器 (11)
- windows (2)
- p.iphone (1)
- p.java.分布式与集群 (2)
- p.ibatis (16)
- p.eclipse (5)
- 架构 (2)
- http协议 (5)
- 我的个人标准 (2)
- 多线程 (1)
- 奇怪问题 (5)
- p.jira (13)
- p.httpclient (1)
- 服务器.apache (11)
- 安全防范 (1)
- p.PODAM (1)
- p.junit (16)
- fop (2)
- 硬盘安装 (1)
- powerdesigner (0)
- 单元测试 (1)
- apache commons (4)
- tomcat+apache集群 (10)
- 各类诡辩 (1)
- 安卓 (8)
- qvod (1)
- java编程基础知识考试考点及答案 (0)
- 工作总结 (4)
- oracle (0)
- spring的util工具 (3)
- json (2)
- maven (3)
- jms (19)
- p.bat (3)
- hadoop (2)
- git (3)
- nginx (1)
- p.移动开发 (1)
- shiro (3)
- 游戏破解 (1)
- react-native (7)
- ios开发 (1)
- webmagic (6)
- socks5 (1)
最新评论
-
weituotian:
说的不好,没人看的
公司系统中的菜单功能和权限功能 -
石不易:
非常详细的注解~
绑定端口和IP,Listen 与VirtualHost指令 -
spring_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
spring mvc -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装 -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装
首先确定下的是MultiForm的表单命名是FieldName + _o_数字
后台在处理改类型的Form的时候,一般会进行如下代码
UtilHttp
.parseMultiFormData(UtilHttp.getParameterMap(request));
UtilHttp.getParameterMap(request)这里不是重点,这里只是将请求参数转换成需要的Map格式,重要看parseMultiFormData,它是处理MultiForm表单请求数据的。
进入
public static Collection<Map<String, Object>> parseMultiFormData(Map<String, Object> parameters) {
//rows,请求参数中哪些参数会被保留由它决定
FastMap<Integer, Map<String, Object>> rows = FastMap.newInstance(); // stores the rows keyed by row number
//开始处理每个参数
for (String key: parameters.keySet()) {
//这里key==null不用看就知道,key.length() <= ROW_SUBMIT_PREFIX_LENGTH这里的ROW_SUBMIT_PREFIX_LENGTH值是13,为神马是13呢?这是因为它将_rowSubmit_o_开头的参数作为判断该请求参数是否有效,如_rowSubmit_o_1=Y,那么所有FieldName + _o_1的参数都是有效地。_rowSubmit_o_是13个字符。
if (key == null || key.length() <= ROW_SUBMIT_PREFIX_LENGTH) continue;
//检查是否存在MULTI_ROW_DELIMITER(_o_)
if (key.indexOf(MULTI_ROW_DELIMITER) <= 0) continue;
if (!key.substring(0, ROW_SUBMIT_PREFIX_LENGTH).equals(ROW_SUBMIT_PREFIX)) continue;
//检查值是否Y
if (!parameters.get(key).equals("Y")) continue;
//计算出它的数字
// decode the value of N and create a new map for it
Integer n = Integer.decode(key.substring(ROW_SUBMIT_PREFIX_LENGTH, key.length()));
Map<String, Object> m = FastMap.newInstance();
//得出所有有效地数字。
//这里我们还可以知道通过row可以取出数字
m.put("row", n); // special "row" = N tuple
rows.put(n, m); // key it to N
}
// 只保留有效地参数
for (String key: parameters.keySet()) {
// skip keys without DELIMITER and skip ROW_SUBMIT_PREFIX
if (key == null) continue;
int index = key.indexOf(MULTI_ROW_DELIMITER);
if (index <= 0) continue;
if (key.length() > ROW_SUBMIT_PREFIX_LENGTH && key.substring(0, ROW_SUBMIT_PREFIX_LENGTH).equals(ROW_SUBMIT_PREFIX)) continue;
// get the map with index N
Integer n = Integer.decode(key.substring(index + MULTI_ROW_DELIMITER_LENGTH, key.length())); // N from ${param}${DELIMITER}${N}
Map<String, Object> map = rows.get(n);
if (map == null) continue;
// 这里最后得到的是哪些数字是有效地,这些数字有哪些参数。
String newKey = key.substring(0, index);
map.put(newKey, parameters.get(key));
}
// return only the values, which is the list of maps
return rows.values();
}
后台在处理改类型的Form的时候,一般会进行如下代码
UtilHttp
.parseMultiFormData(UtilHttp.getParameterMap(request));
UtilHttp.getParameterMap(request)这里不是重点,这里只是将请求参数转换成需要的Map格式,重要看parseMultiFormData,它是处理MultiForm表单请求数据的。
进入
public static Collection<Map<String, Object>> parseMultiFormData(Map<String, Object> parameters) {
//rows,请求参数中哪些参数会被保留由它决定
FastMap<Integer, Map<String, Object>> rows = FastMap.newInstance(); // stores the rows keyed by row number
//开始处理每个参数
for (String key: parameters.keySet()) {
//这里key==null不用看就知道,key.length() <= ROW_SUBMIT_PREFIX_LENGTH这里的ROW_SUBMIT_PREFIX_LENGTH值是13,为神马是13呢?这是因为它将_rowSubmit_o_开头的参数作为判断该请求参数是否有效,如_rowSubmit_o_1=Y,那么所有FieldName + _o_1的参数都是有效地。_rowSubmit_o_是13个字符。
if (key == null || key.length() <= ROW_SUBMIT_PREFIX_LENGTH) continue;
//检查是否存在MULTI_ROW_DELIMITER(_o_)
if (key.indexOf(MULTI_ROW_DELIMITER) <= 0) continue;
if (!key.substring(0, ROW_SUBMIT_PREFIX_LENGTH).equals(ROW_SUBMIT_PREFIX)) continue;
//检查值是否Y
if (!parameters.get(key).equals("Y")) continue;
//计算出它的数字
// decode the value of N and create a new map for it
Integer n = Integer.decode(key.substring(ROW_SUBMIT_PREFIX_LENGTH, key.length()));
Map<String, Object> m = FastMap.newInstance();
//得出所有有效地数字。
//这里我们还可以知道通过row可以取出数字
m.put("row", n); // special "row" = N tuple
rows.put(n, m); // key it to N
}
// 只保留有效地参数
for (String key: parameters.keySet()) {
// skip keys without DELIMITER and skip ROW_SUBMIT_PREFIX
if (key == null) continue;
int index = key.indexOf(MULTI_ROW_DELIMITER);
if (index <= 0) continue;
if (key.length() > ROW_SUBMIT_PREFIX_LENGTH && key.substring(0, ROW_SUBMIT_PREFIX_LENGTH).equals(ROW_SUBMIT_PREFIX)) continue;
// get the map with index N
Integer n = Integer.decode(key.substring(index + MULTI_ROW_DELIMITER_LENGTH, key.length())); // N from ${param}${DELIMITER}${N}
Map<String, Object> map = rows.get(n);
if (map == null) continue;
// 这里最后得到的是哪些数字是有效地,这些数字有哪些参数。
String newKey = key.substring(0, index);
map.put(newKey, parameters.get(key));
}
// return only the values, which is the list of maps
return rows.values();
}
发表评论
-
EL表达式,ognl表达式对集合过滤和投影
2013-11-23 11:48 1160GONL<s:property value=" ... -
整站国际化方案
2012-11-28 17:46 1076当前常见的实现方式,主要由两种方案实现 1.通过locale ... -
form Display元素
2011-09-15 14:46 1298对于display元素,在代码 MacroFormRender ... -
tomcat中运行ofbiz
2011-09-07 17:09 1094http://blog.csdn.net/kongqz/art ... -
string-map-prefix string-list-suffix
2011-08-31 00:54 1622一般service都是用在event ... -
ofbiz文档
2011-08-29 18:07 1163http://ofbiz.apache.org/docs/ -
关于ofbiz-component.xml文件中的resource-loader
2011-08-28 19:44 1297寻找文件的方式最后是通过ComponentConfig.jav ... -
ofbiz中几个占位符
2011-08-28 19:04 1063OFBiz认为一些键名为反馈消息的占位符。 进入Screen ... -
ofbiz中各类安全代码解析
2011-08-28 18:49 1728security.hasPermission方法 publi ... -
OFBizCMS
2011-08-28 17:01 1302OFBizCMS是基于OFBiz框架的CMS系统,集合了邮件, ... -
UserLogin Party Person PartyGroup四个model关系
2011-08-27 00:05 1884只需从userloginmodel入手 其model定义是 & ... -
通过jdbc sql调用,并将结果转化成GenericValue
2011-08-26 23:48 18491.查看GenericDelegator的代码,发现代码最后是 ... -
EntityUtil
2011-08-26 23:13 1207排序,通常有的时候我们不希望通过order by来排序查询。而 ... -
关于实体过期快捷方式
2011-08-26 22:40 1257在java代码中查询实体未过期的快捷方式是 EntityCon ... -
ofbiz各类问题
2011-08-26 10:58 11141.eclipse下面运行出现 Exception in th ... -
screen,menu,form等里面的action
2011-08-25 19:00 973以screen为例 其他类似 screen的action内容 ... -
controlservlet
2011-08-24 22:19 1735control servlet 需要为他在web.xml中指定 ... -
event java
2011-08-24 12:32 1042controller.xml <handler nam ... -
scree 中的几个内置对象
2011-08-24 12:27 1182· screens是一个org.ofbiz.widget. ... -
ofbiz处理流程
2011-08-23 18:36 1276关于control servlet和请求处理,在OFBiz中有 ...
相关推荐
album-3D-Multiform.zip
多种形式简单的 jquery 脚本,只需一次推送即可在一页中生成独特的表单。 单击此处查看移动就绪感谢并享受=)
该项目是通过引导的。 可用脚本 在项目目录中,可以运行: npm start 在开发模式下运行该应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何棉绒错误。...
Oracle EBS里 工具-关闭其他表单 如果被勾选上,用户在打开一个Form的时候,就会关闭其他的Form,保证只有一个Form存在。 如果想开启此选项,则可以通过下面两种方式 1)每个职责单独设置 增加菜单排除项:Menu ...
这个项目是用引导的。可用脚本在项目目录中,您可以运行:npm start 在开发模式下运行应用程序。 打开在浏览器中查看。 如果您进行编辑,页面将重新加载。 您还将在控制台中看到任何 lint 错误。...
Multiform允许通过使用基于XML的声明性语言定义Web应用程序的流程和业务对象来创建Web应用程序。 它由Javascript框架和XSL编译器组成,可从定义中获取应用程序框架。
多种形式 ... multiform命令(安装为 devDependency、 并在 prepublish 上运行)将您的src文件夹构建到dist-0 、 dist-1等中,与您的 Babel 配置相对应。 您的主脚本会自动选择并加载当前 V8 版本
Stratification of pseudoprogression and true progression of glioblastoma multiform based on longitudinal diffusion tensor imaging without segmentation
多格式模板这个 repo 是一个模块的例子。 分支机构: master ——只是基础知识 – 一个更完整的带有 linting 和测试的示例
Swing Contact Manager A simple Swing application for managing a personal contact list. The multiform UI was created and can be edited using Matisse4MyEclipse.
Planning on soil utilization for the Coastal Mekong River Delta, Viet Nam in period 2005-2010,TRAN THAI... Ben Tre, Tra Vinh, Soc Trang, Bac Lieu, Ca Mau and Kien Giang, it is the multiform ecology with
When the net gain a0 changes, it is found that, 1) the shape of the curve of the signal-to-noise ratio (SNR) versus the pump noise self-correlation time \tau exhibits a changing process of multiform ...
3.3 处理事件... 25 3.3.1 建立预定事件. 25 IV .NET移动通信程序设计 3.3.2 建立非预定事件... 26 3.4 使用不同的浏览器...... 27 第 4 章程序调试 29 第5 章 cookies... 32 第6 章窗体控件 35 第7 章 Web ...
get-gh-贡献者从github获取并服务我们的用户和贡献者数据安装> npm install用法> node src/fetch.js# will create a folder named data原料药> npm start# starts an API on port 9090... 其他选项: ipld , multiform
多形节点 简单的例子 NODE JS 快递(翡翠) MongoDB #怎么跑? --运行MongoDB --运行多形式 cd multiform npm install npm start 打开
级联型四能级系统由于具有6个可能的光学跃迁通道, 因而有许多现实的子类型可供光学量子相干效应的理论和实验探讨。利用布尔代数方法, 按照可能存在的跃迁通道, 结合电偶极跃迁选择定则, 研究了级联四能级系统的所有...