我已經配置休眠&春天沒有任何錯誤,我的項目部署,但我嘗試通過控制器「HomeController的」加載我回到Home.jsp但我m到處「錯誤:404未找到資源...」:春3.0 MVC,無法註冊家庭控制器,404錯誤
我已經試過3點不同的方法:
方法1號(不是我的理想方法)。
一)定義使用@Controller @RequestMethod
C)HomeController的回報通過註釋在歡迎列表中的index.htm文件(web.xml)
B)地圖的HomeController爲「將/index.htm」鑑於「家」(WEB-INF /視圖/回到Home.jsp)用於所有3種方法
通用項目結構:
Web.xml中:
<web-app metadata-complete="true" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>yourmarketnet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>yourmarketnet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
</web-app>
Yourmarketnet-spring.xml片段:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/views/" p:suffix=".jsp" p:viewClass="org.springframework.web.servlet.view.JstlView" />
的applicationContext.xml:
<!-- Activates various annotations to be detected in bean classes -->
<context:annotation-config />
<!-- Scans the classpath for annotated components that will be auto-registered as Spring beans. For example @Controller and @Service. Make sure to set the correct base-package-->
<context:component-scan base-package="com.yourmarketnet.controller" />
<!-- Configures the annotation-driven Spring MVC Controller programming model. Note that, with Spring 3.0, this tag works in Servlet MVC only! -->
<mvc:annotation-driven/>
<!-- mapping of static resources-->
<mvc:resources mapping="/resources/**" location="/resources/" />
<import resource="hibernate-context.xml" />
HomeController類:運行應用程序的
package com.yourmarketnet.controller;
@Controller
@RequestMapping("/index.htm")
public class HomeController {
public String requestHandler()
{
return "Home";
}
}
結果:
Http狀態404
所請求的資源()是不可用的。
方法2號,(不是我的理想方法)
一)創建redirect.jsp中,並定義歡迎列表(web.xml)中
B)地圖的HomeController以「/ HomeController的」經由使用@Controller @RequestMethod
c)具備redirect.jsp中的註釋‘<%response.sendRedirect是( 「/ HomeController中」);%>’到我的HomeController
d)HomeController中返回查看「家園」(WEB-INF /視圖/回到Home.jsp)
網絡。XML:
<web-app metadata-complete="true" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>yourmarketnet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>yourmarketnet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>redirect.jsp</welcome-file>
</welcome-file-list>
</web-app>
Yourmarketnet-spring.xml片段:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/views/" p:suffix=".jsp" p:viewClass="org.springframework.web.servlet.view.JstlView" />
</beans>
的applicationContext.xml片段:
<!-- Activates various annotations to be detected in bean classes -->
<context:annotation-config />
<!-- Scans the classpath for annotated components that will be auto-registered as Spring beans. For example @Controller and @Service. Make sure to set the correct base-package-->
<context:component-scan base-package="com.yourmarketnet.controller" />
<!-- Configures the annotation-driven Spring MVC Controller programming model. Note that, with Spring 3.0, this tag works in Servlet MVC only! -->
<mvc:annotation-driven/>
<!-- mapping of static resources-->
<mvc:resources mapping="/resources/**" location="/resources/" />
<import resource="hibernate-context.xml" />
HomeController類:
package com.yourmarketnet.controller;
@Controller
@RequestMapping("/HomeController")
public class HomeController {
public String requestHandler()
{
return "Home";
}
}
運行的應用程序的結果:
Http狀態404/HomeController的
所請求的資源(/ HomeController中)不可用。
方法3號,(如果有任何關閉上述工作的罰款,但是這是我真正想要的)
一)從web.xml中
刪除所有歡迎文件標籤b)中MapDispatcher爲「/」
C)地圖的HomeController爲「/ HomeController的」通過使用註釋@Controller @RequestMethod」
d)的HomeController返回查看「主頁」(WEB-INF /視圖/回到Home.jsp)
Web.xml中:
<web-app metadata-complete="true" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>yourmarketnet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>yourmarketnet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>
** Yourmarketnet-spring.xml片段:**
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/views/" p:suffix=".jsp" p:viewClass="org.springframework.web.servlet.view.JstlView" />
的applicationContext.xml片段:
<!-- Activates various annotations to be detected in bean classes -->
<context:annotation-config />
<!-- Scans the classpath for annotated components that will be auto-registered as Spring beans. For example @Controller and @Service. Make sure to set the correct base-package-->
<context:component-scan base-package="com.yourmarketnet.controller" />
<!-- Configures the annotation-driven Spring MVC Controller programming model. Note that, with Spring 3.0, this tag works in Servlet MVC only! -->
<mvc:annotation-driven/>
<!-- mapping of static resources-->
<mvc:resources mapping="/resources/**" location="/resources/" />
<import resource="hibernate-context.xml" />
HomeController類:
package com.yourmarketnet.controller;
@Controller
@RequestMapping("/")
public class HomeController {
public String requestHandler()
{
return "Home";
}
}
Apache服務器日誌:
警告:否的DispatcherServlet找到HTTP請求與URI [/ yourmarketnet /]名爲 'yourmarketnet'
映射結果運行的應用程序:
Http狀態404
所請求的資源()不可用。
請爲我提供正確的代碼/標籤,以服務器我的家。JSP從HomeController中沒有404錯誤,謝謝。
標註控制器的方法也一樣,除了(或無)在類級別 –
拉維@RequestMapping註解你絕對寫我增加了@RequestMapping(值=「/」,方法= RequestMethod.GET)我的方法和eveything工作,太感謝了好友:) – cyber101
謝謝你玩得開心 –