Пользовательские HttpMessageConverters не имеют приоритета для объектов String в Spring 3.1 - PullRequest
3 голосов
/ 30 декабря 2011

Мой проект Spring 3.1 с пользовательским HttpMessageConverter, указанным так:

<mvc:annotation-driven>
  <mvc:message-converters>
    <bean class="myproject.MyCustomHttpMessageConverter"/>
  </mvc:message-converters>
</mvc:annotation-driven>

Это работает, так как я могу преобразовать возвращаемые значения, помеченные @ResponseBody, в соответствующие значения. Однако, когда возвращаемое значение метода является объектом String , мой пользовательский конвертер сообщений не будет вызываться (конвертеры по умолчанию, кажется, обрабатывают его, отображают строку как ответ напрямую).

Это может быть решено, если я включу register-defaults = "false" как это:

<mvc:annotation-driven register-defaults="false">
  <mvc:message-converters>
    <bean class="myproject.MyCustomHttpMessageConverter"/>
  </mvc:message-converters>
</mvc:annotation-driven>

Это поведение не согласуется с тем, что упомянуто в этом сообщении блога в springsource , в котором говорится: "Список преобразователей сообщений, предоставляемых таким образом, имеет приоритет над преобразователями сообщений, которые регистры пространства имен MVC по умолчанию ".

Есть идеи?

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