2013-06-12 34 views
0

在我添加一個擴展AbstractController的控制器之前,我的項目工作得很好,然後當我嘗試打開「/」根頁面時,我總是得到着名的404頁面。我在我的項目集成彈簧的安全,所以我必須自動顯示登錄表單,當我打開「/」頁面或查看索引如果我在已經loged將XmlViewResolver添加到項目後出現錯誤的映射

這是我的分發程序Servlet:

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans  
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-3.0.xsd 
     http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> 



    <context:component-scan base-package="gestion.delegation.controller" /> 
    <mvc:annotation-driven /> 

<bean class="org.springframework.web.servlet.view.XmlViewResolver"> 
     <property name="location"> 
      <value>/WEB-INF/spring-pdf-views.xml</value> 
     </property> 
     <property name="order" value="0" /> 
    </bean> 

    <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> 
     <property name="order" value="1" /> 
    </bean> 



</beans>  

這裏是控制器:

import java.util.HashMap; 
import java.util.Map; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import org.springframework.web.bind.ServletRequestUtils; 
import org.springframework.web.servlet.ModelAndView; 
import org.springframework.web.servlet.mvc.AbstractController; 

public class RevenueReportController extends AbstractController{ 

    @Override 
    protected ModelAndView handleRequestInternal(HttpServletRequest request, 
     HttpServletResponse response) throws Exception { 

     String output = 
      ServletRequestUtils.getStringParameter(request, "output"); 



     if(output ==null || "".equals(output)){ 
      //return normal view 
      return new ModelAndView("RevenueSummary"); 

     }else if("PDF".equals(output.toUpperCase())){ 
      //return excel view 
      return new ModelAndView("PdfRevenueSummary"); 

     }else{ 
      //return normal view 
      return new ModelAndView("RevenueSummary"); 

     } 
    } 
} 

的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 
    <display-name>GestionPersonnel</display-name> 
    <!-- Spring MVC --> 

    <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>/</url-pattern> 
    </servlet-mapping> 

    <servlet> 
     <servlet-name>default</servlet-name> 

     <servlet-class> 
      org.apache.catalina.servlets.DefaultServlet 
     </servlet-class> 
     <load-on-startup>1</load-on-startup> 

    </servlet> 

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.css</url-pattern> 
    <url-pattern>*.png</url-pattern> 
    <url-pattern>*.gif</url-pattern> 
    <url-pattern>*.js</url-pattern> 
    <url-pattern>*.htm</url-pattern> 
</servlet-mapping> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
      /WEB-INF/Dispatcher-servlet.xml, 
      /WEB-INF/spring-datasource.xml, 
      /WEB-INF/spring-security.xml, 
      /WEB-INF/spring-service.xml 
     </param-value> 
    </context-param> 

    <!-- Spring Security --> 
    <filter> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
    </filter> 

    <filter-mapping> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 



</web-app> 

還我CA從來沒有得到這個abstactController映射的頁面。請問我的調度員文件是否正確?我想要做的和this question所說的一樣:genereate a pdf ...但我不知道錯誤在哪裏。請幫忙..........

回答

0

不要延伸AbstractController ,只是標註使用org.springframework.stereotype.controller

如:

@Controller 
@RequestMapping(value = "/") 
public class RevenueReportController 
+0

一樣的...什麼都沒有改變。謝謝你的回答 – Somar

+0

@Souad你沒有任何請求映射... – NimChimpsky

+0

閱讀文檔http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/ – NimChimpsky

相關問題