首页 文章

BindingResult和bean名称'mstUsermaster'的普通目标对象都不可用作请求属性

提问于
浏览
-1

I am trying a login process using jstl taglib. Below is my controller portion code

@SuppressWarnings("unused")
    @RequestMapping(value = "/authentication", method = RequestMethod.POST)
    public String login(@ModelAttribute("mstUsermaster")MstUsermaster mstUsermaster, BindingResult bindingResult, Model model) {

    MstUsermaster usermaster=loginService.authenticateUser(mstUsermaster);

    if(mstUsermaster != null ){
        System.out.println("You Are a Valid User "+mstUsermaster.getName());
        model.addAttribute("mstUsermaster1",usermaster);

    }else{
        model.addAttribute("loginMessage", "You have entered Wrong UserName or Password!");
        return "index";
    }
    return "dashboard";
}

jsp页面(相关部分)

<form:form method="POST" id ="loginForm" action="${contextPath}/authentication" class="form-signin" modelAttribute="mstUsermaster">
                    <div class="form-group">
                        <label for="exampleInputEmail1" class="text-uppercase">Username</label>
                        <form:input type="text" class="form-control" placeholder="Username" path="userName"  name="username" required="" />
                        <!-- <input type="text" class="form-control" placeholder="" id="userName" name="userName"> -->
                    </div>
                    <div class="form-group">
                        <label for="exampleInputPassword1" class="text-uppercase">Password</label>
                        <form:input type="password" class="form-control" placeholder="Password" path="password" id="password" name="password" required=""  onkeypress="enterKeyPress(event);"/>
                        <!-- <input type="password" class="form-control" placeholder="" id="password" name="password"> -->
                    </div>
                    <div class="form-check">
                        <input type="button" name="submit" class="btn btn-login pull-right" value="Login" id="login">
                        <!-- <button type="submit" class="btn btn-login pull-right">Login</button> -->
                    </div>
                </form:form>

appconfig-data.xml(相关部分)

<!-- Customer Data Access Object -->
<bean id="applicationContextProvder"  class="com.mistraining.isgpp.util.ApplicationContextProvider"/>

<bean id="loginDao" class="com.mistraining.isgpp.dao.impl.LoginDaoImpl" />
<bean id="loginService"class="com.mistraining.isgpp.service.impl.LoginServiceImpl"/>
<bean id="mstUsermaster" class="com.mistraining.isgpp.model.MstUsermaster"/>

但我仍然得到这个错误

SEVERE:servlet [jsp]的Servlet.service()引发了异常java.lang.IllegalStateException:在org.springframework.web.servlet.support.BindStatus中,bean名称'mstUsermaster'的BindingResult和普通目标对象都不能作为请求属性使用 . (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)at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.autogenerateId(AbstractDataBoundFormElementTag.java:141)at at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:132)org.springframework.web.servlet.tags.form.AbstractDataBoundFo rmElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:116)atg.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)at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80) org.apache.jsp.views.index_jsp._jspx_meth_form_005finput_005f0(index_jsp.java:352)org.apache.jsp.views.index_jsp._jspx_meth_form_005fform_005f0(index_jsp.java:287)org.apache.jsp.views.index_jsp._jspService上的org.apache.jsp.views.index_jsp._jspx_meth_form_005finput_005f0(index_jsp.java:352) (index_jsp.java:219)org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)位于org.apache.jasper的javax.servlet.http.HttpServlet.service(HttpServlet.java:742) . servlet.JspServletWrapper.service(JspServletWrapper.java:443)位于org.apache.jasper.servlet.JspServlet.serv位于org.apache.catalina的javax.servlet.http.HttpServlet.service(HttpServlet.java:742)的org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)中的iceJspFile(JspServlet.java:385)位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)的.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)位于org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java) :52)atg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)org.apache.catalina.core . ApplicationDispatcher.invoke(ApplicationDispatcher.java:728)org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:467)org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:392)org .apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311)at或g.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:209)位于org.springframework.web.servlet的org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:267) . DisletcherServlet.render(DispatcherServlet.java:1221)位于org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1005)atg.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952)atg位于org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet)的org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)中的.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870) .java:852)位于javax.servlet.http.HttpServlet的org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)的javax.servlet.http.HttpServlet.service(HttpServlet.java:635) . 服务(HttpServlet.java:742)在org.apache.catalina.core.Applicat在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)的ionFilterChain.internalDoFilter(ApplicationFilterChain.java:231)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)在org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:198)在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)在org.apache.catalina .core.StandardHostValve.invoke(StandardHostValve.java:140)在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)在org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624 )在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)在org.apache.coyote.http11.Http11Processor . 服务(Http11Processor.java:799)在org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java:66)在org.apache.coyote.AbstractProtocol $ ConnectionHandler.process(AbstractProtocol.java:868)在org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1455)在org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run( ThreadPoolExecutor.java:624)atg.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:748)

如何解决这个错误?请帮助我

3 回答

  • 0

    在加载登录页面时,请在控制器中添加以下内容 .

    model.addAttribute("mstUsermaster", new MstUsermaster());
    
  • 0

    尝试删除 BindingResult bindingResult ,如果它有效,那么请考虑它应该在这里,因为 BindingResult 似乎在错误的地方 .

  • 0

    您遇到此错误,因为您的mstUsermaster未绑定到模型

    试试这个

    @ModelAttribute("mstUsermaster")
    public MstUsermaster  getMstUsermaster(){
        return new MstUsermaster  ();
    }
    

相关问题