Como meu aplicativo Play 2 pode responder a diferentes cabeçalhos "Aceitar" do cliente?

No Rails, eu consegui fazer algo semelhante ao seguinte:

respond_to do |format|
  format.xml { ... }
  format.json { ... }
end

e o bloco apropriado seria executado com base no que o cliente forneceu no cabeçalho Accept.

Como posso fazer a mesma coisa no Play 2.0 (Scala)?

Eu procuraria fazer algo que pareça mais ou menos assim:

try {
  Resources.delete(id)
  Ok("done")
} 
catch { 
  case e: ClientReportableException =>
    ?? match { 
      case "application/xml" => Ok(<error>{e.message}</error>)
      case "application/json" => Ok(...)
  }
}

Existe uma expressão do Play para isso ou apenas busco o valor do cabeçalho Accept da solicitação?

questionAnswers(2)

yourAnswerToTheQuestion