improved inflate method for POST params
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -4,7 +4,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>de.srsoftware</groupId>
|
<groupId>de.srsoftware</groupId>
|
||||||
<artifactId>web4rail</artifactId>
|
<artifactId>web4rail</artifactId>
|
||||||
<version>1.4.37</version>
|
<version>1.4.38</version>
|
||||||
<name>Web4Rail</name>
|
<name>Web4Rail</name>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<description>Java Model Railway Control</description>
|
<description>Java Model Railway Control</description>
|
||||||
|
|||||||
@@ -154,12 +154,29 @@ public class Application extends BaseClass{
|
|||||||
private static Params inflate(String data) {
|
private static Params inflate(String data) {
|
||||||
//LOG.debug("inflate({})",data);
|
//LOG.debug("inflate({})",data);
|
||||||
Params params = new Params();
|
Params params = new Params();
|
||||||
if (data == null || data.trim().isEmpty()) return params;
|
if (isNull(data) || data.trim().isEmpty()) return params;
|
||||||
String[] parts = data.split("&");
|
String[] parts = data.split("&");
|
||||||
|
|
||||||
for (String part : parts) {
|
for (String part : parts) {
|
||||||
String[] entry = part.split("=", 2);
|
String[] map = part.split("=", 2);
|
||||||
params.put(URLDecoder.decode(entry[0],UTF8),URLDecoder.decode(entry[1], UTF8));
|
String key = URLDecoder.decode(map[0],UTF8);
|
||||||
|
String value = URLDecoder.decode(map[1], UTF8);
|
||||||
|
|
||||||
|
Params level = params;
|
||||||
|
while (key.contains("/")) { // root/path/entry=value mappen zu params[root][path][entry]=value
|
||||||
|
String[] path = key.split("/", 2);
|
||||||
|
key = path[0];
|
||||||
|
Object entry = level.get(key);
|
||||||
|
if (entry instanceof Params) {
|
||||||
|
level = (Params) entry;
|
||||||
|
} else {
|
||||||
|
Params dummy = new Params();
|
||||||
|
level.put(key, dummy);
|
||||||
|
level = dummy;
|
||||||
|
}
|
||||||
|
key = path[1];
|
||||||
|
}
|
||||||
|
level.put(key,value);
|
||||||
}
|
}
|
||||||
|
|
||||||
return params;
|
return params;
|
||||||
|
|||||||
Reference in New Issue
Block a user