Grails Rest XML-рендеринг - PullRequest
       14

Grails Rest XML-рендеринг

0 голосов
/ 10 ноября 2011

Представьте, что у меня есть такой сценарий в моем контроллере:

def nr_1 = params.first_nr
def nr_2 = params.second_nr
def result
def erro = 'no'

if(nr_1.isInteger() && nr_2.isInteger())
    result = nr_1.toInteger() * nr_2.toInteger()
else
    erro = 'yes'

if(erro.equals('yes'))
    [sms : 'Please introduce only 2 numbers!']
else
    [sms: 'The result of the multiplication of ' + nr_1 + ' with ' + nr_2 + ' is ' + result]

Это возвращается в мое представление gsp, и оно успешно выполнено.Теперь я хочу преобразовать это в веб-службу доступа REST.Как я понимаю, мне нужно будет вручную создать теги, подобные этому:

<firstNumber>nr_1</firstNumber>
<secondNumber>nr_1</secondNumber>   
<result>result</result>  

, а затем вернуться к запросу на остальные.Как я могу это сделать (предоставив ответ HTML и XML, а также XML, проанализируйте только последние теги XML).

Ответы [ 2 ]

0 голосов
/ 10 ноября 2011

Вы можете создать объект, представляющий ваш запрос, и поместить в него содержание вашего запроса.

class Multiplication
{
  String nr_1
  String nr_2
  String result
}

Это позволит нам render as XML сгенерировать ваш XML в вашем действии:

def multiplication = new Multiplication(nr_1: params.first_nr,
                                        nr_2: params.second_nr)
def error = 'no'
  if (multiplication.nr_1.isInteger() && multiplication.nr_2.isInteger())
    multiplication['result'] = multiplication.nr_1.toInteger() * multiplication.nr_2.toInteger()
  else
    error = 'yes'

if (error == 'yes')
{
  [sms: 'Please introduce only 2 numbers!']
}
withFormat {
  html sms: "The result of the multiplication of $multiplication.nr_1 with $multiplication.nr_2 is $multiplication.result"
  xml { render multiplication as XML }
}

Не забудьте import grails.converters.* в начале вашего контроллера.

0 голосов
/ 10 ноября 2011

Может быть с форматом в контроллере вам пригодится? giude

...