установка полного пути в контроллере - PullRequest
0 голосов
/ 17 августа 2011

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

в web.xml

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

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

@Controller
@RequestMapping("/aaa")

BBB контроллер

@Controller
@RequestMapping("/bbb")

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

в web.xml

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

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

@Controller
@RequestMapping("/")

BBB контроллер

@Controller
@RequestMapping("/")

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

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

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

1 Ответ

1 голос
/ 17 августа 2011

Вам также нужно пропустить 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 resolver

<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 Object в ваших контроллерах:

@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 в качестве вашей модели и View, когда вы нажмете /aaa/aaa.html

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...