2012-02-17 14 views
2

私は問題があり、action属性でuriを作成する方法があります。私はSpring Securityを使用しているので、サブフォルダを "user"、 "admin"として使用する必要があります。Spring MVC、フォームアクションのサブフォルダ

<form:form action="/user/reservationTour.html" method="post" commandName="bookTourForm"> 

結果、無プロジェクト名http://localhost:8080/user/reservationTour.html

<form:form action="user/reservationTour.html" method="post" commandName="bookTourForm"> 

結果、リンクで2倍のユーザーhttp://localhost:8080/ProjectContextTitle/user/user/reservationTour.html

<form:form action="<c:url value="/user/reservationTour.html" />" method="post" commandName="bookTourForm"> 

結果、例外

org.apache.jasper.JasperException: /jsp/user/reservationTourPage.jsp(7,33) Unterminated &lt;form:form tag 

これは罰金、しかし確かに動作ない良い解決策

<form:form action="/ProjectContextName/user/reservationTour.html" method="post" commandName="bookTourForm"> 

答えて

12

あなたはユーザーディレクトリに既にいる場合は、あなただけの相対URLを使用する必要があります:あなたは絶対URLを使用する場合は<c:url>を使用し、

<form:form action="reservationTour.html" method="post" commandName="bookTourForm"> 

を、しかし、ドン」それを別のJSPタグの属性に含める:それは違法です。

<c:url value="/user/reservationTour.html" var="theAction"/> 
<form:form action="${theAction}" ...> 
+0

あなたの2番目の試みは、フォームが '/ YourApp/user'パスよりもURLのあるページにあることを示しています。そのため、アクションの相対URLが 'user/reservationTour.html'の場合、'/YourApp/user/user/reservationTour.html'になります。したがって、相対URLが単に 'reservationTour.html'であれば、明らかに'/YourApp/user/reservationTour.html'で終わります。これはあなたが望むものです。 –

関連する問題