2013-07-12 25 views
11

Ho riscontrato un problema durante il tentativo di restituire HTML al controller Spring MVC.Spring MVC controller return HTML

Ecco come si presenta:

@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>"; 
} 

la mia primavera config:

<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> 

sto vedendo Firebug che la risposta sta arrivando come: {"String":"<div></div>"} come posso dire a questo metodo di mandarmi semplice HTML come la risposta?

+0

questa non è un'idea particolarmente buona. – NimChimpsky

+1

Potresti essere più specifico perché non lo è? – user2219247

+0

cosa trovi più facile: modificare html incorporato in java o semplicemente modificare un normale file html/jsp? – NimChimpsky

risposta

19

Cambia la tua Spring config come questa: html=text/html e aggiungi produces = MediaType.TEXT_HTML_VALUE alla tua annotazione @RequestMapping.

+0

Questo funziona per me. Grazie. – user2219247

+3

se devi usare una versione precedente di spring puoi fare questo 'response.setContentType (" text/html "); response.getWriter(). println (...) 'Cancella l'annotazione' @ ResponseBody'. –

+0

ha aggiunto produce = MediaType.TEXT_HTML_VALUE a @RequestMapping e ha funzionato. È obbligatorio fornire nella configurazione di primavera? se sì dove deve essere fornito? – arvindwill

Problemi correlati