2013-09-26 1 views
0

Я пытаюсь добавить путь Забыли пароль к существующему виду. Я создал новый вид, действие, модельный компонент и некоторые состояния в моем веб-потоке. Вместо того, чтобы видеть представление, я продолжаю получать ошибку java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'forgotPassword' available as request attribute. Я знаю, что bean существует, и он должен быть виден. I думаю Я настроил webflow правильно, но я не уверен на 100%. Кто-нибудь знает, что я могу сделать неправильно?Ошибка привязки Webflow

casLoginView.jsp:

<a href="/cas/login?execution=${flowExecutionKey}&_eventId=forgotPassword">Forgot Password</a> 

Логин-webflow.xml:

<var name="credentials" class="org.jasig.cas.authentication.principal.UsernamePasswordCredentials" /> 
<var name="forgotPasswordBean" class="com.mycompany.authentication.ForgotPasswordBean" /> 

<view-state id="viewLoginForm" view="casLoginView" model="credentials"> 
    <binder> 
     <binding property="username" /> 
     <binding property="password" /> 
    </binder> 
    <on-entry> 
     <set name="viewScope.commandName" value="'credentials'" /> 
    </on-entry> 
    <transition on="submit" bind="true" validate="true" to="realSubmit"> 
     <evaluate expression="authenticationViaFormAction.doBind(flowRequestContext, flowScope.credentials)" /> 
    </transition> 
    <transition on="forgotPassword" bind="false" validate="false" to="forgotPasswordView"/> 
</view-state> 

<view-state id="forgotPasswordView" view="myForgotPasswordView.jsp" model="forgotPasswordBean"> 
    <binder> 
     <binding property="username" required="true"/> 
    </binder> 
    <transition on="submit" to="forgotPassword"/> 
</view-state> 

<action-state id="forgotPassword"> 
    <evaluate expression="forgotPasswordAction.submit(flowScope.forgotPasswordBean)" /> 
    <transition on="success" to="newPasswordSentView"/> 
    <transition on="forbidden" to="forgotPasswordForbiddenView"/> 
    <transition on="error" to="forgotPasswordView"/> 
</action-state> 

<end-state id="newPasswordSentView" view="myNewPasswordSentView" /> 
<end-state id="forgotPasswordForbiddenView" view="forgotPasswordForbiddenView" /> 
+0

Существует «забытый пароль», не «забытый пароль». Поэтому либо измените тег '', чтобы ссылаться на 'forgetPasswordBean', либо измените имя на' forgetPassword'. –

+0

@ M.Deinum Это будет форма ? –

+1

'modelAttribute' или' commandName' либо один будет работать. –

ответ

3

Ваш <form:form ... > тег должен ссылаться на правильный компонент. В вашей конфигурации упоминается forgotPasswordBean, а не forgotPassword.

Либо ваша форма объект должен ссылаться на правильные компонентов-

<form:form modelAttribute="forgotPasswordBean" ... > 

Или вы должны переименовать компонент в конфигурации WebFlow (включая все ссылки на него).

<var name="forgotPassword" class="com.mycompany.authentication.ForgotPasswordBean" /> 

 Смежные вопросы

  • Нет связанных вопросов^_^