2012-09-20 56 views
0

我正在寻找一些不错的解决方案。我的页面上有几个文本框,我使用jQuery序列化方法通过Ajax发送这些文本框。这种序列化的字符串被解析在我的Java方法与关键= 'nameOfTextfield' NAD值的HashMap = 'valueInTextfield'jQuery序列化()使用其他分隔符而不是&符号?

例如,我有这个字符串stdSel =值& stdNamText =数值& 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 =值1 & stdNamText =值2 & stdRevText = VAL & & UE3。我的想法是,我将用一些其他字符或更多字符替换&符号作为分隔符。这是可能的,好主意还是有更好的办法?

问候 的Ondrej

+0

你是什么意思?序列化函数使&字符(作为其他特殊字符)转义。 –

+0

你在使用什么Java框架?使用任何servlet容器,您都不需要自己解析POST参数。 – Pointy

+0

可能的重复http://stackoverflow.com/questions/5346877/parsing-post-data-with-ampersand – crowjonah

回答

0

&符号被序列化功能逃跑,所以只要不破的URL。

您需要取消转义你从一个URL获得了场什么是

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

但是,正如被...尖尖尖,如果您使用的是Web框架,而不是只用香草的Java。网java你可能不需要这样做。

相关问题