今天在调试电力营销实时信息支撑与应用平台时管理员登陆模块时,抛出了这样一个一个异常:
javax.servlet.jsp.JspException: Cannot retrieve definition for form bean loginform on action /loginActionTest
意思大概是无法检索表单loginform ,因为loginform 没有定义
org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Exception forwarding for name welcome: org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot retrieve definition for form bean loginform on action /loginActionTest
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:502)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:77)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
root cause
javax.servlet.ServletException: javax.servlet.jsp.JspException: Exception forwarding for name welcome: org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot retrieve definition for form bean loginform on action /loginActionTest
最后发现是struts-config-foundation.xml中的标红的地方应该大写的loginForm写成了loginform,所以悲剧了。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "struts-config_1_2.dtd" >
<struts-config>
<form-beans>
<form-bean name="loginForm" type="com.dicpsi.mis.form.LoginForm" />
</form-beans>
<action path="/loginActionTest" name="loginForm" scope="request" input="/common/error.jsp"
parameter="method" type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="success" path="/fullScreen.jsp"></forward>
<forward name="login" path="/logintest.jsp"></forward>
</action>
</action-mappings>
</struts-config>