Broadly speaking, you want to create a new PropertyEditor that does the normalisation for you, and then you register that in your Controller like so:
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Product.class,
new CaseInsensitivePropertyEditor());
}