我正在使用Spring MVC3。这是我的模型,
public class MarketPlace {
@NotNull(message="This Template Name is required")
@Size(max=50)
private String templateName;
public String getTemplateName() {
return templateName;
}
public void setTemplateName(String templateName) {
this.templateName = templateName;
}
}
这是控制器方法,
public String PublishForm(@Valid MarketPlace m, BindingResult result) {
if (result.hasErrors()) {
return "Error";
}
return "Sucess";
}
但是hasErrors始终为false。
然后我将这些行放在dispather-servelet中,
xmlns:mvc="http://www.springframework.org/schema/mvc"
................
mvc:annotation-driven /
但是现在,NetBean向我显示此错误,
The matching wildcard is strict, but no declaration can be found for element 'mvc:annotation-driven.
有人建议我
“设置JSR-303提供程序在类路径上”
这是什么意思。
我的应用程序中有这些罐子,
lib\slf4j-api-1.6.2.jar,
build/web/Resources/validation-api-1.0.0.GA.jar,
build/web/Resources/hibernate-validator-4.2.0.Final.jar
编辑:
DemoAppMarketController
....................................
class =“ Controller.IndexControler”
最佳答案
您必须确保存在以下xsi:schemaLocation
条目:
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
此外,请看本教程,它说明了如何使用JSR-303提供程序。
http://www.openscope.net/2010/02/08/spring-mvc-3-0-and-jsr-303-aka-javax-validation/
更新:
坦白说,我更喜欢URL映射的另一种方式:
所有请求的jsp都映射到* .html URL。
现在,您的Dispatcher servlet如下所示:
<display-name>MyServlet</display-name>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
比您的Spring URL映射看起来像这样:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>