简体   繁体   English

Bean名称“ categorie”的BindingResult或普通目标对象都不能用作请求属性

[英]Neither BindingResult nor plain target object for bean name 'categorie' available as request attribute

I'm new to Spring MVC and I have an error with a form validation and I don't know why. 我是Spring MVC的新手,但是表单验证出错,我不知道为什么。

I looked almost all answers related this problem on the web but could not figure out the problem in my code. 我在网上查看了几乎所有与该问题有关的答案,但在我的代码中找不到该问题。

Here is my JSP page. 这是我的JSP页面。

<div class="modal-body">
      <f:form method="POST" commandName="categorie" enctype="multipart/form-data"
       action="categorie/add" class="pure-form pure-form-aligned">
       <%-- <f:form action="addcategorie" method="post">   --%> 
      <p><label for="nomcategorie">Nom catégorie  </label><f:input type="text" id="nomcatg" path="nomcategorie"/></p>
      <p><label for="typecategorie">Type catégorie </label><f:input type="text" id="typecatg" path="typecategorie"/></p>
       <div class="pure-control-group">
              <label for="image">Image</label>  

             <%--  <c:if test="${famille.idfamille!=null}">
                             <c:if test="${famille.image!=null}">
                            <img alt="" src="photofamille?idfam=${famille.idfamille }" class="img">
                            </c:if>
                        </c:if>  --%>
                <!-- <br>
                    <br>     -->
         <input type="file" name="file" >  
          </div>
          <br>

      <div class="pure-control-group">
               <label for="couleurfond">Couleur de Fond</label>

             <f:input type="color" name="your favourite color" pattern="#[a-f0-9]{9}" value="#fad345" list="" path="couleur"/>
              <!--  Color: <input class="jscolor" value="ab2567"> -->
               </div>
         <f:input path="idcategorie" type="text" />
      </div>


      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="submit" class="btn btn-primary" >Save changes</button>
      </div>
   </f:form>

my controller: 我的控制器:

@Controller
public class CategorieController {
    @Autowired
    CategorieService categorieService;

     @RequestMapping(value = "/categories", method = RequestMethod.GET)
        public String liste(Model model,HttpServletRequest request) {

//          model.addAttribute("article", new Article());

            model.addAttribute("categories", categorieService.listCategories());

             return "listCategories";
        }

     @RequestMapping(value= "/categorie/add",method = RequestMethod.POST,headers="content-type=multipart/*")
      public String addFamille(@ModelAttribute("categorie") Categorie c,BindingResult bindingResult, Model model,MultipartFile file) throws Exception{
         model.addAttribute("categorie", new Categorie()); 



       if(c.getIdcategorie() == null){




          categorieService.addCategorie(c);
       }


       return "redirect:/categories";

   }

}

i found this error : 我发现此错误:

RAVE: "Servlet.service()" pour la servlet jsp a lancé une exception
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'categorie' available as request attribute
    at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:144)
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168)
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188)
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:154)
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:117)
    at org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:422)
    at org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag.java:142)
    at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84)
    at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80)
    at org.apache.jsp.WEB_002dINF.views.listCategories_jsp._jspx_meth_f_005finput_005f0(listCategories_jsp.java:757)
    at org.apache.jsp.WEB_002dINF.views.listCategories_jsp._jspx_meth_f_005fform_005f0(listCategories_jsp.java:683)
    at org.apache.jsp.WEB_002dINF.views.listCategories_jsp._jspService(listCategories_jsp.java:538)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338)
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1228)
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1011)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:955)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

févr. 08, 2016 2:57:15 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [appServlet] in context with path [/elolink] threw exception [An exception occurred processing JSP page /WEB-INF/views/listCategories.jsp at line 417

414:       <f:form method="POST" commandName="categorie" enctype="multipart/form-data"
415:        action="categorie/add" class="pure-form pure-form-aligned">
416:        <%-- <f:form action="addcategorie" method="post">   --%> 
417:       <p><label for="nomcategorie">Nom cat�gorie  </label><f:input type="text" id="nomcatg" path="nomcategorie"/></p>
418:       <p><label for="typecategorie">Type cat�gorie </label><f:input type="text" id="typecatg" path="typecategorie"/></p>
419:        <div class="pure-control-group">
420:               <label for="image">Image</label>  

what's the problem ,please help me to resolve it 有什么问题,请帮我解决

Your JSP is looking for a binding bean called categorie. 您的JSP正在寻找一个名为categorie.的绑定bean categorie. You can add a new bean to your form in your liste method. 您可以在liste方法中向表单添加一个新bean。

That is, move this line to your GET method: 也就是说,将以下行移至您的GET方法:

model.addAttribute("categorie", new Categorie());

Then, make sure all the properties on the page are also found in your Categorie bean. 然后,确保在您的Categorie bean中也找到了页面上的所有属性。

Also, the newer way to do this is to use modelAttribute instead of commandName . 同样,更新的方法是使用modelAttribute而不是commandName

You can take a look at this post for a similar situation. 您可以在类似情况下查看此帖子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 BindingResult和bean的普通目标对象都不能作为请求属性使用 - Neither BindingResult nor plain target object for bean available as request attribute 循环时获取“既没有 BindingResult 也没有可用作请求属性的 bean 名称‘bean 名称’的普通目标对象” - Getting "Neither BindingResult nor plain target object for bean name 'bean name' available as request attribute" when looping BeanResult的BindingResult和普通目标对象都不能用作请求属性 - Neither BindingResult nor plain target object for bean name available as request attribute Bean名称“所有者”的BindingResult和普通目标对象都不能用作请求属性 - Neither BindingResult nor plain target object for bean name 'owner' available as request attribute IllegalStateException:BeanResult&#39;getAppointment&#39;的BindingResult和普通目标对象都不能用作请求属性 - IllegalStateException: Neither BindingResult nor plain target object for bean name 'getAppointment' available as request attribute BindingResult和bean名称&#39;team&#39;的普通目标对象都不能作为请求属性使用 - Neither BindingResult nor plain target object for bean name 'team' available as request attribute BeanResult&#39;user&#39;的BindingResult和普通目标对象都不能用作请求属性 - Neither BindingResult nor plain target object for bean name 'user' available as request attribute bean 名称“categoryOptions”的 BindingResult 和普通目标对象都不能用作请求属性 - Neither BindingResult nor plain target object for bean name 'categoryOptions' available as request attribute BeanResult&#39;tweets&#39;的BindingResult和普通目标对象都不能用作请求属性 - Neither BindingResult nor plain target object for bean name 'tweets' available as request attribute 简单的Java Web验证Bean名称“数字”的BindingResult和普通目标对象都不能用作请求属性 - Simple Java Web validation Neither BindingResult nor plain target object for bean name 'number' available as request attribute
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM