当我尝试执行@RequestMapping("/showForm")
时,我遇到错误。
我认为我的代码看起来不错,我只是返回带有 JSP 文件名称的新字符串 - “mainmenu.jsp”。我将此文件夹 JSP 放在正确的位置。 错误:
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
问题可能出在哪里?
<mvc:annotation-driven />
<context:component-scan
base-package="com.crunchify.controller" />
<mvc:default-servlet-handler />
<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/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
<servlet>
<servlet-name>crunchify</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>crunchify</servlet-name>
<url-pattern>/welcome.jsp</url-pattern>
<url-pattern>/mainmenu.jsp</url-pattern>
<url-pattern>/mainmenu.html</url-pattern>
<url-pattern>/processForm.jsp</url-pattern>
<url-pattern>/processForm.html</url-pattern>
<url-pattern>/index.jsp</url-pattern>
<url-pattern>/main-menu.jsp</url-pattern>
<url-pattern>/welcome.html</url-pattern>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
实际请求:
@RequestMapping("/showForm")
public String helloWorld() {
return "mainmenu";
}
最佳答案
您的部署描述符 (web.xml) 没有您尝试访问的 URL 的映射。在调度程序 servlet 的 url 映射中添加“/showForm”,或者在调度程序 servlet 的 url 映射中使用通配符“/”。就像,
<servlet>
<servlet-name>crunchify</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>crunchify</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
由于web.xml是入口点,所以应该有url映射。
(您还可以为不同的调度程序 servlet 映射不同的 url。在其他调度程序 servlet 中,您可以使用另一个 View 解析器。)
希望<url-pattern>/</url-pattern>
它会对你有用。
关于java - 如何修复 404 错误,源服务器未找到目标资源的当前表示或不愿意透露该表示存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57631930/