今天抽出点时间复习了一下,李刚<<struts2权威指南>>,其中有一章,关于客户端验证的,按照书上步骤,最后报了一个freemarker.template.TemplateModelException: Method public java.util.List错误,
问题:在使用struts做客户端校验时,form中增加validate="true"属性,login.jsp代码如下:
<s:form action="userAddAction" method="post" validate="true">
<s:textfield name="username" key="username"></s:textfield>
<s:textfield name="firstname" key="firstname"></s:textfield>
<s:submit key="login"></s:submit>
</s:form>
截取部分错误代码
------------------------------------------------------
异常代码:
2011-8-9 17:14:33 freemarker.log.JDK14LoggerFactory$JDK14Logger error
严重:
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@dd89f9
The problematic instruction:
----------
==> list tag.getValidators("${tagName}") as validator [on line 46, column 9 in template/xhtml/form-close-validate.ftl]
in include "/${parameters.templateDir}/xhtml/form-close-validate.ftl" [on line 25, column 1 in template/xhtml/form-close.ftl]
----------
Java backtrace for programmers:
----------
freemarker.template.TemplateModelException: 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@dd89f9
at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:130)
………
------------------------------------------------------
本着内事不决问度娘,外事不决问谷歌的态度,发现有人说了
解决办法1:
去掉表单中的validate="true"属性,即取消了Struts2框架的客户端验证,改用它的服务端验证。这不是解决问题的办法,呵呵!
解决办法2:给action补充后缀.action即可解决这个问题,修改后的login.jsp代码如下:
<s:form action="userAddAction.action" method="post" validate="true">
<s:textfield name="username" key="username"></s:textfield>
<s:textfield name="firstname" key="firstname"></s:textfield>
<s:submit key="login"></s:submit>
</s:form>
但是方法2会报另一个错误
2015-3-10 11:48:29 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: No configuration found for the specified action: 'userAddAction.action' in namespace: '/login'. Form action defaulting to 'action' attribute's literal value.
2015-3-10 11:48:29 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: No configuration found for the specified action: 'userAddAction.action' in namespace: '/login'. Form action defaulting to 'action' attribute's literal value.
解决办法3:在struts.xml中填加一个
<action name="loginInit" class="com.tungkong.action.RegistAction">
<result name="input">/login.jsp</result>
<result name="success">/success.jsp</result>
</action>
login.jsp代码如下:
<s:form action="userAddAction" method="post" validate="true">
<s:textfield name="username" key="username"></s:textfield>
<s:textfield name="firstname" key="firstname"></s:textfield>
<s:submit key="login"></s:submit>
</s:form>
访问的时候写:http://localhost:8080/test/loginInit,这样就不会报错了,如果有更好的解决方式,欢迎大家讨论!
相关推荐
The org.apache.struts2.views.freemarker.FreemarkerManager implementation class org.apache.struts2.views.freemarker.FreemarkerManager接口名 struts.i18n.encoding The encoding to use for ...
11. struts.freemarker.manager.classname:这是一个FreemarkerManager实现类,Struts2用于处理FreeMarker模板。 12. struts.i18n.encoding:这是国际化信息的内码,Struts2用于处理国际化信息。 13. struts.i18n....
com.jagregory.shiro.freemarker.ShiroTags 已经打包过的权限标签,可直接使用
jdk1.8下可以使用的freemarker.jar
org.apache.struts2.views.freemarker, org.apache.struts2.views.freemarker.tags, org.apache.struts2.views.jsp, org.apache.struts2.views.jsp.iterator, org.apache.struts2.views.jsp.ui, org.apache.struts2...
该demo示例实现了使用FreeMarker完成代码的自动生成,也是博文:http://blog.csdn.net/janice0529/article/details/42193235 的源码资源
FreeMarker.CHM(帮助文档),供大家学习 ^_^
camel-freemarker-1.6.4.jar, camel-freemarker-2.8.1.jar, ...freemarker-1.4.1.jar, freemarker-2-3-18.jar, freemarker-2.1.5.jar, freemarker-2.2.5.jar, freemarker-2.2.8.jar,...freemarker.jar, freemarker2_03.jar
FreeMarker (http://freemarker.org/). JSON-lib (http://json-lib.sourceforge.net/). OGNL (http://www.opensymphony.com/ognl/). Plexus (http://plexus.codehaus.org/). SiteMesh ...
freemarker.jar用于jdk1.8下使用,使用freemark前端框架时需要导入。
freemarker.jar freemarker架包 freemarker生成excel、word、html、xml简单例子freemarker生成excel、word、html、xml简单例子
图解MyEclipse配置struts+hibernate+spring+FreeMarker.rar
基于Struts2和freemarker整合的小程序,能够自动生成html页面,能够运行
原来Struts2里带了一个org.apache.struts2.views.freemarker.FreemarkerServlet,新版本里没有了。 这个文件是我从Struts2老版本中摘出来的FreemarkerServlet,将其加入到项目中,然后在web.xml中增加下面的代码即可...
Java freemarker 模板生成word动态表格
FreeMarker (http://freemarker.org/). JSON-lib (http://json-lib.sourceforge.net/). OGNL (http://www.opensymphony.com/ognl/). Plexus (http://plexus.codehaus.org/). SiteMesh ...
org.apache.struts2.views.freemarker.tags org.apache.struts2.views.jsp Struts's JSP tag library. org.apache.struts2.views.jsp.iterator org.apache.struts2.views.jsp.ui org.apache.struts2.views.util ...
freemarker.jar下载
freemarker与struts 1.x 结合,生成html 在http://blog.csdn.net/chen1255 的web中有详细描述关于freemarker与struts1.x的结合
springboot如何使用Freemarker模版引擎