【发布时间】:2014-09-03 10:25:46
【问题描述】:
我有一个 jersey webapp 正在运行,我正在尝试将 spring mvc 集成到其中。几个断点后,我发现当控制器请求映射可访问但 jsp 给出 404 时。这里的任何帮助都会非常有帮助。
这是我的调度程序视图解析器
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
我要加载的 jsp 是 login,它在路径 /WEB-INF/jsp/login.jsp 处可用
我的 jersey servlet 映射设置为默认映射器/
<servlet-mapping>
<servlet-name>Jersey-Web</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
我已将 spring 调度程序设置为按照以下模式进行调度
<servlet-mapping>
<servlet-name>mvcDispatcher</servlet-name>
<url-pattern>/f/login</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mvcDispatcher</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mvcDispatcher</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mvcDispatcher</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mvcDispatcher</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mvcDispatcher</servlet-name>
<url-pattern>/WEB-INF/jsp/login.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mvcDispatcher</servlet-name>
<url-pattern>/login.jsp</url-pattern>
</servlet-mapping>
当我访问/f/login 时,我看到相应的控制器正在被触发。我像这样从我的控制器返回ModelAndView
ModelAndView mav = new ModelAndView( "login" );
return mav;
我想要达到什么目的?
我希望通过 mvcDispatcher 提供所有 jsp 和 url 模式中提到的路径,并且我希望通过 jersey servlet 提供任何其他请求
我尝试了什么?
我尝试将 spring-mvc 设置为映射到默认路径
/,正确地拒绝说不允许使用两个默认 servlet-
我尝试将 jersey servlet 模式设置为
/*并将 spring-mvc 设置为/、*.jsp但正如 jsp 规范所提到的那样,模式*.jsp被/*覆盖
编辑
重申一下我的默认 servlet 不是 dispatcherServlet,我的默认 servlet 是 jersey servlet
【问题讨论】:
-
我希望所有 jsp 的 ... 通过 spring mvc 调度程序提供服务 - 这应该如何工作?
-
抱歉,我在上面的代码中使用的是 mvcDispatcher servlet。编辑了问题
-
JSP 由 jsp servlet 提供。 DispatcherServlet 只转发给一个 jsp,但不传递它。所以将 DispatcherServlet 映射到
*.jsp没有意义。 -
我尝试删除所有 *.jsp 标记,但看起来没有任何区别。即使调用控制器,它仍然给我一个 404 for jsp。
标签: java spring jsp spring-mvc servlets