@User456

Как вывести на одной странице данные из двух других контроллеров в grails?

Добрый день! Я новичок в программировании на java, особенно, дел не имел с фреймворками. Нашел гайд по тому, как создать таблицы (или контроллеры, точно не знаю, как они здесь называются) через классы, в которых прописаны поля для таблиц. Сделал, работает. Добавляет, удаляет, выводит. Но, мне поставили задачу, вывести содержимое двух контроллеров (то есть, их данные) на одной странице. Сказали, что здесь нужно создать файл, который будет что то на подобии из view - index.gsp. Если можно, объясните все очень подробно, так как повторюсь, с фреймворками и с java дел раньше не имел.
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
@User456 Автор вопроса
В общем, путем очень долгих поисков, решение еле-еле как нашлось. Нужно вывести содержимое двух контроллеров: Shops и Country.
В качестве исходника был взят контроллер Shops. (То, что закомментировано - сгенерировал grails). Подставил следующее.
ShopsService shopsService
CountryService countryService
def index(Integer max) {
        //params.max = Math.min(max ?: 10, 100)
        //respond shopsService.list(params), model:[shopsCount: shopsService.count()]
		
		def list1 = countryService.list(params)
		def list2 = shopsService.list(params)
		def str = '';
		str += '<p>--------------------Country-------------------------</p>'
		for (def i = 0; i <list1.size; i++) {
			str += '<p>' + list1[i] + '</p>'
		}
		str += '<p>--------------------Shops-------------------------</p>'
		for (def i = 0; i <list2.size; i++) {
			str += '<p>' + list2[i] + '</p>'
		}
		render str
    }

Выводит просто в столбец данные, на белом фоне. Кстати, выводит он то, что вы указали, при создании класса в методе ToString. Результат конечно преподу не понравился, но, прокатило.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект