Как установить Form Bean, прежде чем он перейдет на страницу JSP - PullRequest
0 голосов
/ 26 октября 2011

Я абсолютный новичок. Поэтому, пожалуйста, потерпите меня, если я пропущу очевидное.

Среда, которую я использую: Spring Portlet MVC (3.0), Liferay 6.0.6

У меня есть контроллер, компонент формы и страница JSP. Я могу успешно отправить форму и получить ее с помощью приведенного ниже кода. Однако я застрял на том, как предварительно загрузить некоторые значения в bean-компонент формы, прежде чем bean-компонент будет перенаправлен в JSP. Может кто-нибудь указать правильное направление:

Мой контроллер:

@ActionMapping(params = "spring_action=resetPasswordViewAction")
protected void resetPasswordAction(ActionRequest actionRequest, Map<String, Object> model, ActionResponse actionResponse, @RequestParam String customerId, @RequestParam String userName) {
    model.put("customerId", customerId);//Preload form bean value with this
    model.put("userName", userName);//Preload form bean value with this
    actionResponse.setRenderParameter("spring_render", "resetPasswordView");
}

@RenderMapping(params = "spring_render=resetPasswordView")
protected ModelAndView resetPasswordView(RenderRequest renderRequest, Map<String, Object> model) {
    return new ModelAndView("resetPassword", model);
}

@ActionMapping(params = "spring_action=resetPasswordUpdateAction")
protected void resetPasswordUpdateAction(ActionRequest actionRequest, Map<String, Object> model, ActionResponse actionResponse, final ResetPassword resetPasswordCriteria) {
    LOG.info(resetPasswordCriteria.toString());// Form values are retrieved successfully
    actionResponse.setRenderParameter("spring_render", "resetPasswordView");
}

@ModelAttribute("resetPasswordCriteria")
public ResetPassword getResetPasswordCriteria() {
    return new ResetPassword();
}

Моя страница JSP:

<form:form id="resetPasswordForm" name="resetPasswordForm" commandName="resetPasswordCriteria" method="post" action="${resetPasswordUpdateActionURL}">

    <form:label path="customerId" /><!--Preload this field value-->
    <form:label path="userName" /><!--Preload this field value-->
    <form:password path="password" />
    <form:password path="confirmPassword" />
    <input type="submit" value="Submit" />

</form:form>

Форма Бин:

public class ResetPassword {
    private String customerId = "";
    private String userName = "";
    private String password = "";
    private String confirmPassword = "";
    //Getters Setters
}

1 Ответ

1 голос
/ 27 октября 2011

В вашем методе рендеринга resetPasswordView поместите в модель объект с именем resetPasswordCriteria (имя вашей команды в jsp) типа ResetPassword .

...