Spring Webflow IllegalStateException : 요청 속성으로 사용할 수있는 빈 이름에 대한 BindingResult 또는 일반 대상 개체가 없습니다.

kumoyadori

내 궁극적 인 목표는 주석이있는 모델을 만들고 양식 입력에 대한 유효성 검사를 수행하는 것입니다. 일부 유효성 검사기를 작성하여 시도했지만 작동하지 않았습니다 (양식에는 sp를 입력 할 수있는 필드도 표시되지 않았으므로 유효성 검사를 테스트 할 항목이 없음) 처음부터 작은 단계로 시도했습니다. 첫 번째 단계로 어떤 종류의 유효성 검사를 시작하기 전에 모델 바인딩이 작동하도록 만들고 싶습니다.

간단한 시도로 mailItemModel 양식 http://www.javabeat.net/introduction-to-spring-web-flow-swf/를 사용했습니다 .

web.xml에 링크 된 servlet-config.xml에 다음 행을 추가했습니다.

<mvc:annotation-driven />   
<context:annotation-config />
<context:component-scan base-package="com.mypackage.kumo.**" /> 

나는 다른 튜토리얼에서 그것을 가지고 있었고 이것이 전체 패키지를 스캔하는 것이라고 생각하고 변수에 모든 모델을 명시 적으로 지정할 필요가 없습니다. 제목 오류가 발생합니다. 또한 모델 클래스에 "@Component"를 추가해 보았습니다. 그러나 그것은 아무것도 바꾸지 않았습니다.

플로우 XML에 다음 추가를 시도했습니다.

<var name="MailItemModel" />

위의 링크 된 튜토리얼에서와 같이. 오류가 발생했습니다. 해당 요소 var "에는"class "속성이 필요하므로 대신 다음과 같이 만듭니다.

<var name="MailItemModel" class="com.mypackage.kumo.model.MailItemModel" />

하지만 이전과 같은 오류가 발생합니다.

내 흐름은 이제 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<flow xmlns="http://www.springframework.org/schema/webflow"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation=" 
        http://www.springframework.org/schema/webflow 
        http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd"
    start-state="Start">

    <var name="MailItemModel" class="com.mypackage.kumo.model.MailItemModel" />

    <view-state id="Start" view="/Search" model="MailItemModel">
        <transition on="entered" to="temp" />
        <transition on="cancel" to="SubEnde" />
    </view-state>

    <view-state id="temp" view="/End" />

    <view-state id="SubEnde" view="/Start" />    
</flow>

Search.jsp (양식 발췌)

<form:form method = "post" modelAttribute = "mailItemModel">
      Mail Username: <form:input path="username" />
         <br />
       <input type="submit" name="_eventId_entered" value="Entered" />
       <input type="submit" name="_eventId_cancel" value="Cancel" />
</form:form>

Start.jsp 및 End.jsp는 lorem ipsum 콘텐츠가있는 정적 jsps입니다.

Stacktrace :

root cause

java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'mailItemModel' available as request attribute
    org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:144)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:154)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.autogenerateId(AbstractDataBoundFormElementTag.java:141)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:132)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:116)
    org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:422)
    org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag.java:142)
    org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84)
    org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80)
    org.apache.jsp.WEB_002dINF.jsp.Search_jsp._jspx_meth_form_005finput_005f0(Search_jsp.java:559)
    org.apache.jsp.WEB_002dINF.jsp.Search_jsp._jspx_meth_form_005fform_005f0(Search_jsp.java:522)
    org.apache.jsp.WEB_002dINF.jsp.Search_jsp._jspx_meth_dsx_005fcontent_002dbox_005f0(Search_jsp.java:478)
    org.apache.jsp.WEB_002dINF.jsp.Search_jsp._jspx_meth_dsx_005fcontent_005f0(Search_jsp.java:439)
    org.apache.jsp.WEB_002dINF.jsp.Search_jsp._jspx_meth_dsx_005fhtml_002dbody_005f0(Search_jsp.java:375)
    org.apache.jsp.WEB_002dINF.jsp.Search_jsp._jspx_meth_dsx_005fhtml_005f0(Search_jsp.java:293)
    org.apache.jsp.WEB_002dINF.jsp.Search_jsp._jspService(Search_jsp.java:126)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:209)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:267)
    org.springframework.webflow.mvc.servlet.ServletMvcView.doRender(ServletMvcView.java:55)
    org.springframework.webflow.mvc.view.AbstractMvcView.render(AbstractMvcView.java:187)
    org.springframework.webflow.engine.ViewState.render(ViewState.java:296)
    org.springframework.webflow.engine.ViewState.refresh(ViewState.java:243)
    org.springframework.webflow.engine.ViewState.resume(ViewState.java:221)
    org.springframework.webflow.engine.Flow.resume(Flow.java:545)
    org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:258)
    org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:169)
    org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:183)
    org.springframework.webflow.mvc.servlet.FlowController.handleRequest(FlowController.java:174)
    org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

내가 무엇을 잘못하고 있지? 나는 동일한 오류의 다른 게시물을 살펴 보았지만 모두 컨트롤러의 URL에 @requestmapping을 사용하지만 Webflow를 사용하고 있기 때문에 컨트롤러를 사용하지 않습니다 (그리고 보이지 않을 것입니다). 정말 도움이되지 않습니다.

마커스

구성에 두 가지 결함이 있습니다.

  1. 모델 이름이 잘못되었습니다.
  2. 기본 패키지는 개미 스타일의 표현입니다.

구성에서 모델 객체의 이름을 지정했습니다 MailItemModel( M 표시 ).

<var name="MailItemModel" class="com.mypackage.kumo.model.MailItemModel" />

보기에서 이름이 지정됩니다 mailItemModel( m을 참고하십시오 ).

<form:form method = "post" modelAttribute = "mailItemModel">

흐름 구성에서 변경 mailItemModel하거나보기 MailItemModel에서 대 / 소문자를 포함하여 일치해야하는 이름을 사용 하십시오.

구성에 관하여.

<context:component-scan base-package="com.mypackage.kumo.**" /> 

base-package속성은 기본 패키지의 이름 (들)이 스캔 만한다는 것입니다. 개미 스타일의 표현이 필요하지 않습니다. 결말을 제거하십시오 .**.

<context:component-scan base-package="com.mypackage.kumo" /> 

의 사용이 <context:component-scan … />이미 의미 하는 마지막 참고 사항 <context:annotation-config />이므로 해당 구성 줄을 제거 할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관