У меня есть приложение grails 2.2.0. Я создал глобальный фильтр и имеет некоторую проверку. если проверка не удалась, она отображает файл статического представления с помощью рендеринга view: viewFileName, заканчивающийся потоком else, возвращает true, говорящее, что приложение может продолжаться. В действии при входе действие отображает вид просмотра входа в режим просмотра: loginFileName, но вместо этого отображает имя viewFileName. Обратите внимание, что фильтр уже прошел, и проверка прошла тоже. Эта проблема кажется аналогичной предыдущей статье Grails "respond" renders the wrong view when launched from .war file , но разница в том, что существуют два файла с индексом одинакового имени, но в другом контроллере, но здесь мы имеем фильтр, отображающий представление, если какое-либо условие проходит, которое отображается, даже если это условие терпит неудачу. Чтобы убедиться, что это проблема, я удалил этот вид рендеринга: viewFileName в фильтре с визуализацией «< div> .... </div>», а затем он работал хорошо, т.е. действие отображалось на правой странице, а не на статическом стр. При необходимости я могу разместить более подробную информацию. Я не могу полагаться на эту страницу, которая находится в строке для рендеринга, поскольку это не будет длительным. Вот два класса с выдачейGrails 2.2.0 делает неправильную страницу
class MainController {
def login() {
def param = getHeaderParameters()
render view: "login", model: param
}
}
class MainFilters {
private final String mainControllerName = "main"
private final String startPage = "start"
def GrailsConventionGroovyPageLocator groovyPageLocator
def filters = {
all(controller: '*', action: '*') {
before = {
if (AdminUtils.isStart(request)) {
println "rending start page...."
final fileView = "/$mainControllerName/$startPage"
render view: fileView
}
}
}
}
Опубликовать линию, которая отображает представление. Возможно, вы неправильно ссылаетесь на представление. – Alidad
render view: "login", model: param – Sumit
где находится логин? корень? – Alidad