Pergunta

Como faço para deixar cair uma Groovlet em um aplicativo Grails? Digamos, por exemplo, em web-app / groovlet.groovy

import java.util.Date

if (session == null) {
  session = request.getSession(true);
}

if (session.counter == null) {
  session.counter = 1
}

println """
<html>
    <head>
        <title>Groovy Servlet</title>
    </head>
    <body>
Hello, ${request.remoteHost}: Counter: ${session.counter}! Date: ${new Date()}
<br>
"""

Foi útil?

Solução

  1. grails install-templates
  2. Editar src/templates/web/web.xml para incluir o seu Groovlet
  3. grails war
  4. deploy

Eu pessoalmente não fez isso para incorporar uma Groovlet, mas esta é a maneira documentada para modificar o implantado Grails web.xml

Outras dicas

A forma como eu entendo, Groovlets são usados ??quando você tem um recipiente Servlet com suporte a scripts Groovy,

Eu acho que em Grails você precisa mover seu código de lógica de negócios para um controlador e deixar a parte vista a um um href="http://grails.org/doc/1.0.x/guide/6.%20The%20Web%20Layer.html#6.2" rel="nofollow noreferrer"> arquivo .

Algo nesse sentido (meta-código a partir do topo da minha cabeça, não testada):

grails-app / controllers / SampleController.groovy

class DateController {
    def index = {
        if (session == null) {
          session = request.getSession(true);
        }

        if (session.counter == null) {
          session.counter = 1
        }
    }
}

web-app / sample / index.gsp

<html>
    <head>
    <title>Groovy Servlet</title>
    </head>
    <body>
Hello, ${request.remoteHost}: Counter: ${session.counter}! Date: ${new Date()}
<br>

Espero que ajude!

scroll top