2011-02-17 7 views
1

Spring MVC 3.0.4.RELEASE가 포함 된 webapp가 있습니다.
2) 검색 및 경로에 POST을 클릭 search.html에 : 나는 경로로 GET하여 검색 웹 페이지를 입력Spring MVC에서 오류 발생시 URL을 관리하는 방법은 무엇입니까?

1) :

나는 다음과 같은 시나리오를 searchResults.hmtl
을 3) 검색 결과를 클릭하면 searchResults/enterResult.html에 POST를 수행합니다.
4) 컨트롤러에서 예외가 발생했다고 가정합시다 ...
5) searchResults.html 페이지로 돌아 가야합니다. 이전 검색

이/enterResults.html을 경로의 SearchResult를 유지하기 때문에 내가 OA 검색은 다음 inexistent 경로를 구축 결과를 클릭 그래서 만약 내가 앞으로 사용할 수 없습니다의 SearchResult /의 SearchResult/enterResults.html

당신이 알고 이 문제를 어떻게 관리 할 수 ​​있습니까?

답변

2

오류가 발생하면 전달하지 말고 redirect:searchResults.html을 보내시겠습니까? 오류 메시지를 해당 페이지에 표시되도록 다시 보내려는 경우 매개 변수로 추가 할 수 있습니다 (예 : redirect:searchResults.html?error_message=yada).

그런데 검색 결과 양식 작업을 구성 할 때 상대 URL을 사용하지 않으면 처음에는 searchResults/searchResults/enterResults.html 문제가 발생하지 않아야합니다. /your-app/searchResults/enterResults.html 대신 enterResults.html에 POST를 수행하는 것처럼 보입니다.이 문제를 해결하면 앞서 언급 한 것처럼 리디렉션을 수행 할 필요가 없습니다.

내가 여기서 말하려고하고있어입니다 :

... 대신이 일을 ...

<form action="enterResults.html" method="POST"> 
    ... 
</form> 

... 이렇게 ...

<form action="${pageContext.request.contextPath}/searchResults/enterResults.html" method="POST"> 
    ... 
</form> 

이렇게하면 전달 된 URL이 이전 URL을 유지하는지 여부는 중요하지 않습니다. 항상 적절한 조치를 취할 것입니다.

+0

contextPath의 트릭이 매력으로 작동했습니다. – Neuquino

관련 문제