In the previous exercise, while adding a new product, we bound every field of the Product
domain in the form. However, it is meaningless to specify the unitsInOrder
and discontinued
values during the addition of a new product because nobody can make an order before adding the product to the store, and similarly, the discontinued
products need not be added in our product list. So, we should not allow these fields to be bound to the form bean while adding a new product to our store. However, all the other fields of the Product
domain object need to be bound. Let's see how to do this with the following steps:
We open our
ProductController
class and add a method as follows:@InitBinder public void initialiseBinder(WebDataBinder binder) { binder.setDisallowedFields("unitsInOrder", "discontinued"); }
We then add an extra parameter of the type
BindingResult
(org.springframework.validation.BindingResult
) to theprocessAddNewProductForm
method as follows...