If you aren't concerned about localized text and will only have hours and minutes, then a simple solution would be to write your own little tag to do the formatting. Something like:
def formatPeriod = { attrs ->
def periodFormatter = new PeriodFormatterBuilder().appendHours().appendSuffix("hrs.").appendSeparator(" ").appendMinutes().appendSuffix("min.").toFormatter()
out << periodFormatter.print(attrs.value)
}
Here's sample output from a groovy shell:
groovy:000> period = new Period().withHours(11).withMinutes(32)
===> PT11H32M
groovy:000> formatter = PeriodFormat.wordBased()
===> org.joda.time.format.PeriodFormatter@6d2ddeee
groovy:000> formatter.print(period)
===> 11 hours and 32 minutes
groovy:000> periodFormatter = new PeriodFormatterBuilder().appendHours().appendSuffix("hrs.").appendSeparator(" ").appendMinutes().appendSuffix("min.").toFormatter()
===> org.joda.time.format.PeriodFormatter@56048075
groovy:000> periodFormatter.print(period)
===> 11hrs. 32min.