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 回答
在加载登录页面时,请在控制器中添加以下内容 .
尝试删除
BindingResult bindingResult
,如果它有效,那么请考虑它应该在这里,因为BindingResult
似乎在错误的地方 .您遇到此错误,因为您的mstUsermaster未绑定到模型
试试这个