com*_*tta 92 spring spring-mvc servlet-dispatching
我的处理程序转发到internalresourceview'apiForm',但后来我得到错误404 RequestURI =/WEB-INF/pages/apiForm.jsp.我确定apiForm.jsp位于/ WEB-INF/pages /
13:45:02034 DEBUG [org.springframework.web.servlet.view.JstlView] -转发到资源[/WEB-INF/pages/apiForm.jsp]在InternalResourceView 'apiForm'
13:45:02035 DEBUG [org.springframework .web.servlet.DispatcherServlet] - 名为'testapp2'的DispatcherServlet确定[/WEB-INF/pages/apiForm.jsp]的最后修改值
13:45:02,038 DEBUG [org.springframework.web.servlet.DispatcherServlet] -在getLastModified
13:45:02,038中找不到处理程序DEBUG [org.springframework.web.servlet.DispatcherServlet] - 名为'testapp2'的DispatcherServlet处理请求[/WEB-INF/pages/apiForm.jsp]
13:45:02,038 WARN [org.springframework.web.servlet.PageNotFound] - 在DispatcherServlet中找不到带有URI [/WEB-INF/pages/apiForm.jsp]的HTTP请求的映射,名称为'testapp2'13
:45:02,045 DEBUG [org.springframework. web.servlet.DispatcherServlet] - 已成功完成请求
13:45:02,048 DEBUG [org.springframework.web.servlet.DispatcherServlet] - 已成功完成请求
这就是我的dispatcher.xml的样子..
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
pto*_*mli 155
看起来DispatcherServlet正在尝试处理apiForm.jsp的请求,这表明你的web.xml servlet-mapping正在将对该空间的请求定向到DispatcherServlet.
你可能有这样的东西?
<servlet-mapping>
<servlet>dispatcher</servlet>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
尝试使用不同的扩展名调用控制器(例如.do)并更新servlet-mapping以适应
<servlet-mapping>
<servlet>dispatcher</servlet>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
sou*_*ica 90
是的,我知道我迟到了这个派对,但它可能对其他人有所帮助.
servlet容器根据匹配的最长路径选择映射.因此,您可以将此映射放入JSP中,并通过/*映射选择它.
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>/WEB-INF/pages/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
实际上对于Tomcat来说,你需要的只是jsp,它是一个开箱即用的servlet.对于其他容器,您需要找到JSP servlet的名称或添加servlet定义,如:
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
</servlet>
Run Code Online (Sandbox Code Playgroud)
Jun*_*Liu 13
你会收到一个No mapping found for HTTP request with URI
错误
如果您扫描错误的包裹
例如,您的控制器在my.package.abc中, 但是您错误地放了
<context:component-scan base-package="my.package.efg*" />
要么
@ComponentScan("my.package.efg*")
从某种意义上说,当请求不仅仅是url,而是找不到整个类时,你的控制器不会被扫描到Web应用程序上下文中!
我想我读了整个互联网,想弄清楚如何让sitemesh处理我的html路径而没有扩展+没有扩展的API路径.我被一件直夹克包裹着,想出这个,每一个回合似乎都打破了别的东西.然后我终于遇到了这个帖子.
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>/WEB-INF/views/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>/WEB-INF/decorators/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
在dispatcher-servlet.xml中输入
<mvc:default-servlet-handler/>
Run Code Online (Sandbox Code Playgroud)
帮助我的解决方案是:不映射DispatcherServlet
到/*
,映射到/
.然后是最终配置:
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
...
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
小智 8
使用Spring 3.1和Tomcat 7,我得到了下一个错误:
org.springframework.web.servlet.DispatcherServlet noHandlerFound在名为'appServlet'的DispatcherServlet中找不到带有URI [/ baremvc /]的HTTP请求的映射
我需要添加到web.xml下一个配置:
<welcome-file-list>
<welcome-file/>
</welcome-file-list>
Run Code Online (Sandbox Code Playgroud)
应用程序工作!
可以进行简单的检查.我目前正在使用Spring MVC架构和hibernate.我错过了在类名之上编写@Controller注释.这对我来说是个问题.
@Controller
public class MyClass{
...
}
Run Code Online (Sandbox Code Playgroud)
希望这个简单的检查可以解决您的问题.
归档时间: |
|
查看次数: |
397114 次 |
最近记录: |