struts2 form标签加上validate="true"就出错的解决办法

http://www.cnblogs.com/dafanjava/archive/2011/08/02/2124681.html

背景说明:

我用的是struts2.2.3

相关源码:

<s:form action="addBook" validate="true"><!-- form标签,启用验证 --> 加上validate="true"就报下面的错误
<s:label value="form标签"></s:label>
<s:textfield name="name" label="书名"></s:textfield>
<s:textfield name="author" label="作者"></s:textfield>
<s:submit value="提交" align="center"></s:submit>
</s:form>

报如下错误:

严重: 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@19c6163

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@19c6163
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@19c6163

(此处略去其他详细的exception信息)

Caused by: java.lang.NullPointerException
(此处略去其他详细的exception信息)

严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException 

(此处略去其他详细的exception信息)  

解决办法:

法一:

去掉validate="true"

不过我想这种办法不是你想要的(反正我是不希望这样解决),所以我采用第二种办法。

法二:

将form标签的name属性改成"addBook.action" ,即改为:<s:form action="addBook.action" validate="true"></form>

问题解决,但是我也不知道为什么需要加.action,明白的朋友请留言。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值