1

SpringMVCPortletフレームワークのコントローラーを使用した単純なログインフォームがあります。フォームは次のようになります

<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/showcaseURL上にあるために間違ったページにリダイレクトされ、404エラーが発生することです。<portlet:renderURL>タグとマッピングは正しく機能していますが、このフォームを単純に機能させることはできません。

私の環境は、JBoss JPP 6.0(GateIn 3.5に基づく)、Spring 3.2.1、およびPortlet2.0です。

4

1 に答える 1

1

これはSpring3.2.1および3.2.2のバグです:https ://jira.springsource.org/browse/SPR-10382

修正は3.2.3で計画されています。その間、3.2.0にダウングレードできます。

于 2013-03-15T10:17:14.090 に答える