更新到Java 7时,Spring的动态属性无效
我负责一个很老的网站,最初是用Java5编译的,现在是Java6。我正在使用Spring3.1 我正在尝试从Java6/Tomcat6更新到Java7/Tomcat7,关于表单标记我有很多问题 对于此代码:更新到Java 7时,Spring的动态属性无效,java,spring,tomcat7,java-7,Java,Spring,Tomcat7,Java 7,我负责一个很老的网站,最初是用Java5编译的,现在是Java6。我正在使用Spring3.1 我正在尝试从Java6/Tomcat6更新到Java7/Tomcat7,关于表单标记我有很多问题 对于此代码: <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> ... <form:textarea path="myPath" placeholder="hello world"
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
...
<form:textarea path="myPath" placeholder="hello world" id="myId" rows="1" />
似乎我在更新Java之前使用的很多属性都不再起作用了。你知道为什么吗?谢谢 看起来WAR意外地包含了几个版本的TLD,在Tomcat 6中找到了正确的版本,但在Tomcat 7中加载了错误的版本 如果WEB-INF/lib中存在相同jar的两个不同版本,则无法预测将选择哪个版本,结果取决于类加载器实现细节,因此不同的Tomcat版本可能会产生不同的结果 要验证这一点,请尝试通过文件
spring.schemas
的多个版本查看IDE。这些文件包含url之间的映射,例如http://www.springframework.org/tags/form
和XSD/TLD在同一个jar中提供
此机制适用于未在线发布的XSD/TLD,如本例的url,如果将url粘贴到浏览器,则文件不存在
在这种情况下,应该有两个
spring.schema
都提到urlhttp://www.springframework.org/tags/form
。删除版本错误的XSD/TLD,它在两个Tomcat版本中都能正常工作。非常感谢!我的构建路径中有spring.jar(v2.5)和其他spring-jar(v3.0)。我刚把旧的拿走,它就起作用了
Attribute placeholder invalid for tag textarea according to TLD