javascript - form表單提交,后臺實體類接收轉義問題
問題描述
問題:前臺表單用ajax提交,data為validateForm.serializeArray(),后臺用實體類接收參數,&符號被轉義為&但是從request中直接取值是沒問題的,請問如何解決實體類接收到的參數的轉義問題。
代碼如下:
前臺代碼:var formData = validateForm.serializeArray();$.ajax({ type: ’POST’, cache: false, url: basepath + '/newProjectAdjustment/saveProjectAdjustmentInfo.do', data: formData, dataType: 'json', async:false, success: function (result) {if (result.success) { saveFlag = true;} else { parent.$.messager.alert('提示', result.msg != '操作成功' ? result.msg : projMessage.get('C008'), 'info');} }, error: function (result) {parent.$.messager.alert('提示', projMessage.get('C008'), 'info'); }});return saveFlag;
后端代碼:@RequestMapping(value = 'saveProjectAdjustmentInfo.do', method = RequestMethod.POST)@ResponseBodypublic AjaxJson saveProjectAdjustmentInfo(HttpServletRequest request, ProjectAdjustmentDTO projectAdjustmentInfo) throws InvocationTargetException, IllegalAccessException { Map params = FormFormatterUtil.formatFrom2Map(request); AjaxJson result = new AjaxJson(); return result;}Debug:這是實體類中接收的參數:
這是request種接收的參數:
問題解答
回答1:在實體參數前面加@RequestBody試試
回答2:在實體類的set方法中使用StringEscapeUtils.unescapeHtml4()就能反轉義。
