Question

How do I drop a Groovlet into a Grails app? Say, for example, in 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>
"""

Was it helpful?

Solution

  1. grails install-templates
  2. Edit src/templates/web/web.xml to include your groovlet
  3. grails war
  4. deploy

I've not personally done this to incorporate a groovlet, but this is the documented way to modify the deployed Grails web.xml

OTHER TIPS

The way I understand it, groovlets are used when you have a Servlet container with Groovy scripting support,

I think in Grails you would need to move your business logic code to a controller and leave the view part to an HTML or a GSP file.

Something along those lines (meta-code from the top of my head, not tested):

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>

Hope that helps!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top