Fre*_*ser 2 java spring jsp jsp-tags
我的JSP中有这个代码:
<form:form commandName="Recipient" name="mailForm"
action="MailSuccess.jsp" method="get">
<form:input path="toAddress"/>
<form:input path="subject"/>
<input type="submit" value="Send"/>
</form:form>
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
org.apache.jasper.JasperException:/SendMail.jsp(12,0)form:form标签声明它接受动态属性但没有实现所需的接口
我的猜测是我错过了一些JAR文件,但我不确定.任何人都可以提供一些信息,说明为什么会这样?
你确实错过了一些JAR文件,或者你有它们但是版本错误(我认为包含标签处理程序的Spring jar文章错误,甚至可能错误地包含jsp-api.jar在你的应用程序中).
您从servlet容器中获取该异常,因为它认为Spring Form标记处理程序无效.
在JSP 2.0中,为标记处理程序添加了一个新功能,允许它们采用动态属性.为此,您必须在TLD文件中使用<dynamic-attributes>true</dynamic-attributes>声明指定它,并且标记处理程序类必须实现该DynamicAttributes接口.
从例外情况来看,您的应用程序可能会加载JSP 2.0 Spring TLD文件以及包含org.springframework.web.servlet.tags.form.FormTag该类的旧版本JAR .
你没有提到你正在使用的Spring版本.是3吗?也许它加载了Spring 2 JAR,如果您使用Maven来获取应用程序依赖项,则可能会发生这种情况.这是有道理的,因为类之间的类发生了变化,所以这将是我要检查的第一件事:
FormTag版本2:所有已实现的接口:Serializable,IterationTag,JspTag,Tag,TryCatchFinally,EditorAwareTag.
FormTag版本3:所有已实现的接口:Serializable, DynamicAttributes,IterationTag,JspTag,Tag,TryCatchFinally,EditorAwareTag.
| 归档时间: |
|
| 查看次数: |
7458 次 |
| 最近记录: |