2017-07-05 90 views
0

我HomeController類:Spring MVC的主頁

@Controller 
public class HomeController { 

    @RequestMapping("/") 
    public String showPage() { 
     return "main-menu"; 
    } 
} 

我的項目結構: enter image description here

Spring版本:4.3.9 web.xml中:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
     version="3.1"> 
    <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>dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>*.form</url-pattern> 
    </servlet-mapping> 
</web-app> 

調度員的servlet .XML:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 

</beans> 

它總是顯示index.jsp,從來沒有main-menu.jsp 我想要一個主菜單我的主頁。我該怎麼辦?

+0

默認情況下spring將index.jsp,index.html等作爲歡迎頁面。此功能可以根據這篇文章disabed https://stackoverflow.com/a/29054676/3981536 –

+0

所以我不能設置其他名稱的主頁? – Raspberry

+0

你可以,但你需要重寫春天 –

回答

1

我使用的方法在我的項目來解決這個問題。 我與你分享它下面

只保留以下內容在你的index.jsp

index.jsp 

<meta http-equiv="refresh" content="0;url=welcome" /> 

在控制器Java程序的RequestMapping必須持有<meta>標籤的url屬性指定的值在index.jsp規定文件。

在這個例子中,url屬性具有價值welcome

@Controller 
public class HomeController { 

    @RequestMapping("/welcome") 
    public String welcome() { 
     return "main-menu"; 
    } 
} 

這爲我工作

更新#1:

<bean id="viewResolver" 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix"> 
      <value>/WEB-INF/pages/</value> 
     </property> 
     <property name="suffix"> 
      <value>.jsp</value> 
     </property> 
    </bean> 

更新#2:

<context:annotation-config /> 
<context:component-scan base-package="add your base folder here" /> 
+0

對我不起作用。 IDE總是說「沒有發現視圖解析器」 – Raspberry

+1

你有在yourdispatcher-servlet.xml中定義的viewResolver嗎? – divine

+0

不,請看dispatcher-servlet.xml – Raspberry

1

問題就出在你的web.xml文件:

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>*.form</url-pattern> 
</servlet-mapping> 

您聲明到用SpringMVC DispatcherServlet將只處理URL中.form結束servlet容器。因此,對於家庭的要求從來沒有用SpringMVC達到機械 - 順便說一句,這也解釋了爲什麼/welcome神聖的提議也不管用,但/welcome.form應...

您也有從我一看這個其他post對於一般討論如何使用SpringMVC處理根URL。