Проверка номера Spring MVC с помощью typeMismatch - PullRequest
3 голосов
/ 07 сентября 2011

Моя форма состоит из Предмета и имеет «количество».Когда я ввожу письмо, я хочу, чтобы оно вернулось с ошибкой.Я попытался использовать typeMismatch в моем файле свойств, но он не работает.

Сервлет:

<context:component-scan base-package="com.cat.jra.petstore.server.controller" />
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />

<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:viewClass="org.springframework.web.servlet.view.tiles2.TilesView" />
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" p:basename="labels" />
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer" p:definitions="/WEB-INF/tiles/tiles-defs.xml" />

Форма:

 <div class="label"><fmt:message key="product.quantity.label"/></div>
            <div class="input"><form:input path="quantity" size="10"/> <form:errors path="quantity" /></div>

label.properties

typeMismatch.quantity=Please enter a number, stupid...
typeMismatch.item.quantity=dude...
typeMismatch.java.lang.Integer=more dude...
typeMismatch=markiscool

Контроллер

@Controller
@RequestMapping("/inventory/*")
public class InventoryController {
@RequestMapping(value = "save", method = RequestMethod.POST)
    public String addItem(ModelMap map, Item item) {
        System.out.println("addItem");

        return "redirect:list";
    }
}

Сообщение пружины точно говорит нам, чтопоместить в файл свойств:

отклоненное значение [w];коды [typeMismatch.item.quantity, typeMismatch.quantity, typeMismatch.java.lang.Integer, typeMismatch

Что я делаю неправильно?Что такое секретный соус?

1 Ответ

1 голос
/ 27 сентября 2011

Похоже, вы не запускаете валидатор. Если вы используете валидатор Springframework, вам потребуется что-то вроде следующего:

@Controller
@RequestMapping("/inventory/*")
public class InventoryController {

@Autowired
private Validator inventoryValidator;

@RequestMapping(value = "save", method = RequestMethod.POST)
public String addItem(ModelMap map, Item item,
        BindingResult result) {

    System.out.println("addItem");

    inventoryValidator.validate(item, result);
    if (results.hasErrors()) {
        return *name of data entry page*
    } else {
        return "redirect:list";
    }
}
}

Если вы пытаетесь использовать проверку на основе аннотаций Hibernate, я бы порекомендовал взглянуть на эту страницу:

http://codemunchies.com/2010/07/spring-mvc-form-validation-with-hibernate-validator/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...