Я думаю, что решил эту проблему. Было две проблемы:
1) Реализации SimpleFormController требуют представления формы и успеха; который я не настроил здесь. Поскольку это серверный метод для клиента AJAX, я добавил представление Spring-JSON следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"
default-lazy-init = "false" default-autowire = "нет"
по умолчанию-зависимость-регистрация = "нет">
<bean name="jsonView" class="org.springframework.web.servlet.view.json.JsonView">
<property name="jsonErrors">
<list>
<ref bean="statusError" />
<ref bean="modelflagError" />
</list>
</property>
</bean>
<bean name="statusError"
class="org.springframework.web.servlet.view.json.error.HttpStatusError">
<property name="errorCode"><value>311</value></property>
</bean>
<bean name="modelflagError"
class="org.springframework.web.servlet.view.json.error.ModelFlagError">
<property name="name"><value>failure</value></property>
<property name="value"><value>true</value></property>
</bean>
, который можно использовать для всех контроллеров, возвращающих JSON.
2) Я переключился с SimpleURLHandlerMapping на ControllerClassNameHandlerMapping и опирался на соглашения об именах Spring (controllerClassName / method.html), которые исправили проблему маршрутизации. Может не быть долгосрочным решением, но помогло мне справиться с этой задачей.