Spring MVC Homepage Controller - PullRequest
       4

Spring MVC Homepage Controller

2 голосов
/ 29 февраля 2012

Я создал несколько страниц с помощью Spring Roo, и мне нужно показать некоторые элементы из базы данных на домашней странице приложения.Итак, как я могу передать модель с данными на домашнюю страницу, Roo добавил следующие строки, которые я закомментировалТеперь все страницы показывают индексное представление, даже / логин.

С уважением и благодарностью.

Ответы [ 4 ]

3 голосов
/ 29 февраля 2012

Попробуйте это:

Не отображать на URL "/", оно будет соответствовать всем запросам (как вы видели) .Изменить: Согласно комментариям, выделенная часть предыдущего предложения неверна.Похоже, что обходной путь все еще действителен.

  1. В файле web.xml настройте файл приветствия (возможно, index.html).
  2. Используйте имя файла индекса @RequestMappingвашего контроллера индекса (возможно "/index.html").

Другой вариант, если этого недостаточно

  1. В вашем файле web.xml настройте приветствие JSPfile (возможно, index.jsp).
  2. В вашем файле приветствия JSP перенаправьте запрос на известный URL (возможно, /blammy).
  3. Сопоставьте контроллер индекса с известным URL (например,@RequestMapping("/blammy")).
2 голосов
/ 04 декабря 2013

Поскольку я несколько запутался в смешанных комментариях выше, я подумал, что напишу, как я начал работать.

  1. Закомментировано <mvc:view-controller path="/" view-name="index"/> в webmvc-config.xml

  2. Создан новый контроллер. Я использовал руо, чтобы создать его для меня. Однако я понял, что он добавил несколько JSPX, связанных с контроллером. Поскольку они мне не нужны, я удалил JSPX. Пример контроллера ниже

    @RequestMapping("/")
    @Controller
    public class IndexController {
    
        @RequestMapping
        public String index() {
            return "redirect:/asas?page=1&size=10";
        }
    }
    

Вы можете в значительной степени вызвать любой существующий метод контроллера. В моем случае я хотел, чтобы он отображал определенные элементы, которые извлекаются из базы данных.

В моем исследовании, добавив @RequestMapping("/"), он не заставляет каждый запрос на посадку в этом контроллере. Это происходит только при нажатии URI базы приложения.

2 голосов
/ 29 февраля 2012

Чтобы передать данные модели, добавьте модель в сигнатуру вашего метода.

В случае вашей проблемы с маршрутизацией попробуйте сопоставить запрос на уровне метода и убедитесь, что есть сопоставления для других ваших представлений. т.е.: "/ логин"

@Controller
public class Home {
   @RequestMapping(value="/", method = RequestMethod.GET)
   public String index(Model model) {
        String myData = "I want access to this";
        model.addAttribute("myData", myData);
        return "index";
   }
}
0 голосов
/ 18 ноября 2014

Для меня работает, определить отображение запроса в качестве пути по умолчанию welcome-file путь:

@Controller
public class Home {
        @RequestMapping("/index.html")
        public String index() {
            return "index";
        }
}
...