2014-09-29 3 views
0

두 개의 JSP에 하나의 요청 매핑을 사용할 수 있습니까?Spring-MVC : 하나의 컨트롤러에 두 개의 JSP가 하나의 요청으로 매핑됩니다.

현재 하나의 컨트롤러에서 하나의 요청 매핑을 호출하고 있지만 jsp 중 하나가 컨트롤러에 걸려있는 것 같지 않습니다.

는 다음과 같이 first.jsp :

 <form:form method="POST" action="/ShowroomNav/requestQuote" id="requestQuoteForm"> 
      <input type="hidden" id="requestQuoteEmailAddress" name="requestEmailAddress" /> 
     <c:forEach var="product" items="${products}"> 
      <input type="hidden" value=${product.productCode } name="productCodes" /> 

      <div class="box"> 
       <img 
        src="public/productImages/${product.productCode}/${product.productCode}A.jpg" 
        style="max-width: 100%" 
        onclick="productProfile('${product.productCode}')" /><br /> <label 
        class="name">${product.productName}</label> 
      </div> 


     </c:forEach> 
     </form:form> 

모두 :

<form:form method="POST" action="/ShowroomNav/requestQuote" id="requestQuoteForm"> 

    <input type="hidden" value=${product.productCode } name="productCodes" /> 
    <input type="hidden" id="requestQuoteEmailAddress" name="requestQuoteEmailAddress" /> 
</form:form> 

을 다음과 같이 second.jsp

두 JSP는 같은 형태의 행동과 같은 형태의 방법을 그들 중 자바 스크립트 호출에 의해 기능을 제출 :

$("#requestQuoteSubmitButton").one("click",function(){ 

     $("#requestQuoteEmailAddress").val($("#requestQuoteEmailAddressModal").val()); 


      alert($("#requestQuoteEmailAddress").val()); 
      $("#requestQuoteForm").submit(); 

    }); 

controller.java의 모습을 어떻게은 다음 second.jsp이 컨트롤러에 의해 체포 될 수없는 이유를 내가 제출하려고 할 때 항상이 오류를 같이

@RequestMapping(value = "/requestQuote", method = RequestMethod.POST) // or GET 
public String requestQuote(@RequestParam("requestQuoteEmailAddress") String requestQuoteEmailAddress, @RequestParam("productCodes") String[] productCodes) { 

    System.out.println(">>>> requesting quotes >>>>"); 

    for(int i=0; i<productCodes.length; i++) { 
     System.out.println(" Product Codes : " + productCodes[i]); 
    } 

    System.out.println("requestQuoteEmailAddress : " + requestQuoteEmailAddress); 
    System.out.println("<<<<< requesting quotes <<<<");   

    return "productSearch"; 
} 

그래서 나도 몰라.

HTTP Status 400 - The request sent by the client was syntactically incorrect. 

누군가 도움주세요.

답변

5

문제는 (오타?) 당신의 second.jsp 조각의 귀하의 두번째 라인입니다 :

<input type="hidden" id="requestQuoteEmailAddress" name="requestEmailAddress" /> 

id 속성은 클라이언트 측 기준 주로하고, 양식 (제출 문제가되지 않을 때 HTML input - name vs. id 참조). 중요한 것은 name 속성입니다. 당신이 @RequestParam("requestQuoteEmailAddress")로 핸들러 메서드 매개 변수를 주석 이후

requestEmailAddress=...&productCodes=...&productCodes=... 

는, 스프링 MVC는 requestQuoteEmailAddress 대신 requestEmailAddress, 따라서 오류 (을 찾습니다 : POST 요청이 서버로 전송되는 때, 요청 본문은 같다 @RequestParam의 필수 항목은 기본적으로 true입니다).

+0

안녕하세요 @ 칭보, 솔루션 주셔서 감사합니다! 나는 이것을 정말로 보지 못했다. 그리고 그것은 아주 혼란 ​​스러웠다. 감사. –

관련 문제