2013-01-07 50 views
2

我正面臨着將值提交給Spring MVC中的控制器的問題。客戶端發送的請求在語法上不正確 - Spring MVC

當我把控制器與href它被提交到控制器的方法,我已提交下列方式:

href='CIMtrek_Compliance_Daily_Shipments_Case_Pack_Calendar?date=<%=formatedDate%>'

但是當我提交了相同的通過JavaScript我得到這個例外The request sent by the client was syntactically incorrect.

這是我如何通過javascript提交:

function getCasePackCalendar(date) { 
    viewName ="CIMtrek_Compliance_Daily_Shipments_Case_Pack_Calendar?date="+date+" "; 
    global.forms[0].action = viewName; 
    global.forms[0].method = "GET" 
    global.forms[0].submit() 
} 

這是我的控制器方法:

@RequestMapping(value = "/CIMtrek_Compliance_Daily_Shipments_Case_Pack_Calendar", method = RequestMethod.GET) 

     public ModelAndView CIMtrek_Compliance_Daily_Shipments_Case_Pack_Calendar(@RequestParam("date") String date,HttpServletRequest request) { 
      String[] data = new String[] {date}; 
     HttpSession session = request.getSession(true); 
     String UserName = ""; 
     if(session.getAttribute("CIMtrek_UserName")!=null) 
     UserName = session.getAttribute("CIMtrek_UserName").toString(); 
     ViewContent vc = new ViewContent(); 
     String HTML = vc 
     .getContent(
     "com/cim/xml/CIMtrek_Compliance_Daily_Shipments_Case_Pack_sql.xml", 
     "com/cim/xsl/view.xsl", "1 and 10","1","","0",UserName,data,""); 

     List<String> ls = new ArrayList<String>(); 
      ls.add(HTML); 
      logger.info("Welcome CIMtrek_Visitors_By___Unipart_Div__Date__Host___Visitor!"); 
      Map<String, Object> model = new HashMap<String, Object>(); 

     model.put("list", ls); 
     model.put("iSPost", "N"); 

     logger.info("Welcome CIMtrek_Compliance_Daily_Shipments_Case_Pack!"); 

     return new ModelAndView("view", model); 

     } 

這是我怎麼也得形式

<form id="CIMtrek_Compliance_Daily_Shipments"> 
               <input type="hidden" id="CIMtrek_selectedIDs" name="CIMtrek_selectedIDs" value="" /> 
               <input type="hidden" id="CIMtrek_xmlData" name="CIMtrek_xmlData" value="" /> 
               <input type="hidden" id="CIMtrek_formName" name="CIMtrek_formName" value="CIMtrek_Compliance_Daily_Shipments" /> 
              </form> 

可能是什麼問題。

請幫我找到它。

最好的問候。

+1

請使用一些調試工具(例如chrome F12-> Network選項卡或Firefox Firebug來查看瀏覽器形成的請求)在這種情況下,您將表單參數放入視圖名稱中(甚至可以將一些奇數空格符號添加到引用在參數後)在你的客戶js - 它似乎並不正確。我建議你製作一個單獨的控制器方法來處理你的表單,但無論如何這需要大量的閱讀。在這種情況下,您的表單被錯誤地序列化, –

+0

作爲答案。我會將其標記爲已接受,這樣可以幫助其他人。問題是我們不應該在通過java腳本提交頁面時附加任何值,我們可以在鏈接中附加參數,但不要在使用javascript提交頁面時附加參數 –

+0

它可能並不重要,但您可能希望從公司特定的信息中刪除你的代碼在這裏。 – blank

回答

3

請使用一些調試工具(例如在Chrome中使用F12-> Network選項卡,或使用Firefox Firebug查看由瀏覽器形成的請求)在這種情況下,您將表單參數放入視圖名稱中(甚至添加一些奇怪的空間符號在參數後面加引號)在你的客戶端js中 - 它似乎並不正確。

我建議你製作一個單獨的控制器方法來處理你的表單。

在這種情況下,您的表單被錯誤地序列化(實際上正確的html表單序列化/參數傳遞由幾個RFC調節)。

相關問題