0

我正在寻找一些不错的解决方案。我的页面上有几个文本字段,我使用 jQuery 序列化方法通过 Ajax 发送这些文本字段。这个序列化的字符串在我的 java 方法中解析为带有 key = 'nameOfTextfield' nad value = 'valueInTextfield' 的 hashmap

例如,我有这个 String stdSel=value1&stdNamText=value2&stdRevText=value3并且一切正常。

String[] sForm = serializedForm.split("&");
Map<String, String> fForm = new HashMap<String, String>();
for (String part : sForm) {
  String key = null;
  String value = null;
  try {
    key = part.split("=")[0];
    value = part.split("=",2)[1];
    fForm.put(key, value);
  //if textfield is empty
  } catch(IndexOutOfBoundsException e) {
    fForm.put(key, "");
  }
}

但是当某些文本字段中出现&符号时,此方法将失效,例如此stdSel=value1&stdNamText=value2&stdRevText=val&&ue3。我的想法是,我将在序列化字符串中替换&符号作为分隔符,用于某些其他字符或更多字符。这是可能的好主意还是有更好的方法?

问候 Ondrej

4

1 回答 1

0

与号序列化函数转义,因此它们不会破坏 URL。

您需要对从 URL 获得的字段进行转义是

value = URLDecoder.decode(value,"UTF-8");

但是,正如... Pointy 所指出的,如果您使用的是 Web 框架而不是仅使用 vanilla java.net java,那么您可能不必这样做。

于 2012-09-20T15:56:28.333 回答