Grails adds a couple of methods and properties to our controller classes automatically. One of the methods is the header()
method. With this method we can set a response header with a name and value. The methods accepts two arguments: the first argument is the header name and the second argument is the header value.
In the following controller we invoke the header()
method to set the header X-Powered-By
with the Grails and Groovy version.
package header.ctrl class SampleController { def grailsApplication def index() { final String grailsVersion = grailsApplication.metadata.getGrailsVersion() final String groovyVersion = GroovySystem.version header 'X-Powered-By', "Grails: $grailsVersion, Groovy: $groovyVersion" } }
We can test this with the following Spock specification:
package header.ctrl import grails.test.mixin.TestFor import spock.lang.Specification @TestFor(SampleController) class SampleControllerSpec extends Specification { def "index must set response header X-Powered-By with value"() { when: controller.index() then: response.headerNames.contains 'X-Powered-By' response.header('X-Powered-By') == 'Grails: 2.2.4, Groovy: 2.0.8' } }
Code written with Grails 2.2.4