Struts2.1.8 在做客戶端驗證時,當form中給定 validation=“true”時,通過jsp頁面訪問會報一下異常:
Method public java.util.List org.apache.struts2.components.Form.getValidators(java.lang.String) threw an exception when invoked on org.apache.struts2.components.Form@18faef1 - Class: freemarker.ext.beans.SimpleMethodModelFile: SimpleMethodModel.javaMethod: execLine: 130 - freemarker/ext/beans/SimpleMethodModel.java:130:-1org.apache.struts2.components.UIBean.end(UIBean.java:515)org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)org.apache.jsp.index_jsp._jspx_meth_s_005fform_005f0(index_jsp.java:143)org.apache.jsp.index_jsp._jspService(index_jsp.java:80)org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)javax.servlet.http.HttpServlet.service(HttpServlet.java:803)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)javax.servlet.http.HttpServlet.service(HttpServlet.java:803)org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)
解決的辦法就是
不要直接訪問你的JSP頁面,爲應用中所有頁面都配置一個通用Action,例如:
<action name="*"> <result>{1}.jsp</result> </action>
比如你要訪問abc.jsp頁面,你應該訪問abc.action,或者省略.action後綴,直接訪問abc也可以。
但不要直接訪問abc.jsp