Groovlet em aplicativos Grails
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> """
Solução
-
grails install-templates
- Editar
src/templates/web/web.xml
para incluir o seu Groovlet -
grails war
- 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!