У меня простая форма входа с контроллером в Spring MVC Portlet framework. Форма выглядит следующим образомSpring MV Porlet ActionMapping не работает
<portlet:actionURL var="loginAction">
<portlet:param name="action" value="login" />
</portlet:actionURL>
<div class="portlet-section-body">
<form:form name="loginForm" method="post" action="${loginAction}" commandName="loginForm" >
<table>
<tr>
<td><span class="portlet-form-field-label">Username: </span></td>
<td><form:input class="portlet-form-input-filed" path="login" /></td>
<td><form:errors path="login" /></td>
</tr>
<tr>
<td><span class="portlet-form-field-label">Password: </span></td>
<td><form:input class="portlet-form-input-filed" path="password" /></td>
</tr>
<tr>
<td><input class="portlet-form-button" type="submit" value="Login"/></td>
</tr>
</table>
</form:form>
</div>
и контроллер
@Controller
@RequestMapping(value="VIEW")
public class LoginController {
@RenderMapping("render=showBookListPage")
public String showBookListPage() {
return "bookList";
}
@ActionMapping(params="action=login")
public void loginUser(ActionResponse response) {
response.setRenderParameter("render", "showBookListPage");
}
@ModelAttribute("loginForm")
public LoginForm getLoginForm() {
return new LoginForm();
}
}
И проблема - когда я отправить форму, я попадаю на страницу /bookShop-1.0/portal/classic/showcase/somePortalGeneratedString
что неправильно, потому что мой портлет на localhost:8080/portal/classic/showcase
URL, так что я получите ошибку 404. <portlet:renderURL>
Тег и отображение работают правильно, но я не могу просто получить эту форму.
Моя среда: JBoss JPP 6,0 (на основе воротав 3.5), Spring 3.2.1 и портлетов 2,0
Отлично, большое спасибо за разъяснение этого! –