J'ai une liste de catégories qui doivent vivre dans la portée servletContext de l'application puisque la liste sera accessible par chaque vue et n'aura pas besoin d'être modifiée.Comment accéder à Grails ServletContext dans un fichier gsp?
J'ai essayé de définir une nouvelle propriété servletContext dans la méthode init de BootStrap.groovy mais je ne semble pas pouvoir accéder au servletContext dans les fichiers gsp.
Voici ce que j'essaie. Comment accéder aux propriétés de portée servletContext (application) à partir d'un fichier gsp?
import org.codehaus.groovy.grails.commons.ApplicationHolder as AH
import java.util.List
import java.util.ArrayList
class BootStrap {
def init = {
servletContext ->
def dataSource = AH.application.mainContext.dataSource
List categories
def sql = new Sql(dataSource);
def rows = sql.rows("select distinct catgry from cmpitmms");
categories = new ArrayList();
for (arg in rows) {
println arg.getAt(0)
if (!arg.getAt(0).trim().equals("")) {
categories.add(arg.getAt(0).trim());
}
}
servletContext.categories = categories
}
def destroy = {
}
}
Voici où j'essaie d'y accéder dans le fichier gsp.
<ul>
<g:each var="category" in="${servletContext.categories}">
<li><a href="category/${category}" title="${category}">${category}</a></li>
</g:each>
</ul>