我有一個需要在應用程序的servletContext範圍內生存的類別列表,因爲列表將被每個視圖訪問,並且不需要修改。如何訪問gsp文件中的Grails ServletContext?
我試着在BootStrap.groovy的init方法中設置一個新的servletContext屬性,但我似乎無法訪問gsp文件中的servletContext。
這是我正在嘗試。如何從gsp文件訪問servletContext(應用程序)範圍屬性?
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 = {
}
}
這裏是我試圖在gsp文件中訪問它的地方。
<ul>
<g:each var="category" in="${servletContext.categories}">
<li><a href="category/${category}" title="${category}">${category}</a></li>
</g:each>
</ul>