«JSR-303 провайдер на пути к классам» - PullRequest
1 голос
/ 24 сентября 2011

Я использую Spring MVC 3. Вот моя модель,

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 всегда ложно. Затем я положил эти строки в Диспертер-Сервлет,

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 

Edit:

DemoAppMarketController .................................

1 Ответ

2 голосов
/ 24 сентября 2011

Вы должны быть уверены, что существуют следующие записи 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 выглядит так:

 <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>

Чем выглядит ваше сопоставление URL-адресов в Spring:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix">
        <value>/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...