2013-07-12 2 views
11

У меня возникла проблема с попыткой вернуть HTML в мой контроллер Spring MVC.Возврат контроллера Spring MVC HTML

Это выглядит следующим образом:

@RequestMapping(value = QUESTION_GROUP_CREATE_URL, method = RequestMethod.POST) 
public 
@ResponseBody 
String createQuestionGroup(@RequestBody JsonQuestionGroup questionGroup, HttpServletResponse response) { 

    // questionGroup - this comes OK. 

    response.setContentType("text/html"); 
    response.setCharacterEncoding("UTF-8"); 
    return "<div></div>"; 
} 

Моя весна конфигурации:

<bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> 
    <property name="favorPathExtension" value="false"/> 
    <property name="favorParameter" value="true"/> 
    <property name="mediaTypes"> 
     <value> 
      json=application/json 
      xml=application/xml 
      html=application/html 
     </value> 
    </property> 
</bean> 

Я вижу поджигатель, что ответ приходит как: {"String":"<div></div>"}, как я могу сказать, этот метод, чтобы послать мне простой HTML, как ответ?

+0

Это не особенно хорошая идея. – NimChimpsky

+1

Не могли бы вы уточнить, почему это не так? – user2219247

+0

Что вы находите более легким - редактирование html, встроенное в java, или просто редактирование обычного файла html/jsp? – NimChimpsky

ответ

19

Измените конфигурацию вашей пружины следующим образом: html=text/html и добавьте produces = MediaType.TEXT_HTML_VALUE в ваш @RequestMapping аннотация.

+0

Это работает для меня. Благодарю. – user2219247

+3

, если вам нужно использовать более раннюю версию весны, вы можете сделать это 'response.setContentType (" text/html "); response.getWriter(). println (...) 'Отметьте аннотацию' @ ResponseBody'. –

+0

добавляет производит = MediaType.TEXT_HTML_VALUE в @RequestMapping аннотацию, и это сработало. Обязательно ли указывать конфигурацию Spring? если да, где это необходимо предоставить? – arvindwill

Смежные вопросы