Хобрук: Ваш путь к мастерству в программировании

установка полного пути в контроллере

Я разработал весеннее приложение. все запросы отправляются на контроллеры (у меня есть 2 контроллера в моем приложении), поэтому web.xml выглядит следующим образом:

в веб.xml

<servlet-mapping>
   <url-pattern>/*</url-pattern>

контроллер ааа

@Controller
@RequestMapping("/aaa")

ббб контроллер

@Controller
@RequestMapping("/bbb")

но теперь мне нужно добавить некоторые jsp-страницы в мой проект, так как "/*" в web.xml мои jsp-страницы не найдены. поэтому я изменил отображение сервлета, как показано ниже;

в веб.xml

<servlet-mapping>
   <url-pattern>/aaa/*</url-pattern>
   <url-pattern>/bbb/*</url-pattern>

контроллер ааа

@Controller
@RequestMapping("/")

ббб контроллер

@Controller
@RequestMapping("/")

но я не хочу использовать этот подход, так как я могу получить доступ к сервлету xxx в контроллере aaa, таком как /bbb/xxx.

так есть ли альтернативное решение, например, могу ли я установить полный путь в контроллере или что-то еще?

заранее спасибо...


Ответы:


1

Вам также необходимо передать jsp через сервер. Вы можете сопоставить его как расширение html

<servlet>
    <servlet-name>example</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>example</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>

В example-servlet.xml просто добавьте следующий преобразователь jsp

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
      <property name="prefix" value="/jsp/"/>
      <property name="suffix" value=".jsp"/>
  </bean>

а затем используйте объект ModelAndView в своих контроллерах:

@Controller
@RequestMapping(value="/aaa")
public class aaaController{

    @RequestMapping(value="/aaa.html", method=RequestMethod.GET)
    public ModelAndView index(){
        ModelAndView mv = new ModelAndView("aaa");
        return mv;
    }
}


@Controller
@RequestMapping(value="/bbb")
public class aaaController{

    @RequestMapping(value="/bbb.html", method=RequestMethod.GET)
    public ModelAndView index(){
        ModelAndView mv = new ModelAndView("bbb");
        return mv;
    }
}

В этом случае первый контроллер вернет /aaa.jsp как вашу модель и просмотр, когда вы нажмете /aaa/aaa.html

и второй контроллер вернет /bbb.jsp как вашу модель и просмотр, когда вы нажмете /bbb/bbb.html

Надеюсь, поможет.

17.08.2011
  • @Controller @RequestMapping(/aaa) @RequestMapping(method=RequestMethod.GET,value=/login) public String getLogin(запрос HttpServletRequest, ответ HttpServletResponse, модель модели) { model.addAttribute(имя пользователя, тест); вернуть логин; } } ОШИБКА --- [PageNotFound] Не найдено сопоставление для HTTP-запроса с URI [/TestServer/WEB-INF/views/login.jsp] я думаю, что меня неправильно поняли, моя проблема в том, что без изменения URL-адреса в моем приложении добавляются некоторые JSP-страницы. Кстати, я не могу изменить uri, так как он уже используется. uri должен быть .../TestServer/aaa/login 17.08.2011
  • Новые материалы

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

    Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
    Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

    Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
    Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

    стройный-i18следующий
    Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..