2011-06-26 6 views
0

私は春MVCフレームワークの初心者です。私は単純なコントローラ(AbstractControllerから拡張)を作成しようとしており、単純なビュー(home.jsp)を返したいが、コントローラのhandleRequestInternal()は決して呼び出されないようだ。私は下の私のコードを与えています。どんな助けも高く評価されます。Spring MVCコントローラのhandleRequestInternalメソッドが呼び出されない - 基本的な問題の例

web.xmlの

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.4" 
     xmlns="hiperlink is trimmed " 
     xmlns:xsi="hiperlink is trimmed " 
     xsi:schemaLocation="hiperlink is trimmed " > 

    <servlet> 
     <servlet-name>students</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>students</servlet-name> 
     <url-pattern>/students/*</url-pattern> 
    </servlet-mapping> 


    <filter> 
     <filter-name>sitemesh</filter-name> 
     <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class> 
    </filter> 

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

    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 

    <jsp-config> 
     <taglib> 
      <taglib-uri>/spring</taglib-uri> 
      <taglib-location>/WEB-INF/spring-form.tld</taglib-location> 
     </taglib> 

     <taglib> 
      <taglib-uri>hiperlink is trimmed java.sun.com/jsp/jstl/core</taglib-uri> 
      <taglib-location>/WEB-INF/c.tld</taglib-location> 
     </taglib> 

     <taglib> 
      <taglib-uri>hiperlink is trimmed java.sun.com/jsp/jstl/fmt</taglib-uri> 
      <taglib-location>/WEB-INF/fmt.tld</taglib-location> 
     </taglib> 
    </jsp-config> 

</web-app> 

学生-servlet.xml

<?xml version="1.0" encoding="UTF-8"?> 

<beans xmlns="hiperlink is trimmed " 
     xmlns:xsi="hiperlink is trimmed "  xmlns:context="hiperlink is trimmed" xmlns:jaxws="hiperlink is trimmed " 
     xsi:schemaLocation="hiperlink is trimmed "> 

     <bean id="handlerMapping" 
      class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> 

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

    <bean id="myService" class="net.ochinto.student.service.MiscellaneousService"/> 

    <bean name="/home.htm" class="net.ochinto.student.web.HomePageController"> 
     <property name="myService" ref="myService"/> 
    </bean> 

</beans> 

HomePageController.java

public class HomePageController extends AbstractController { 
    private static final Logger log = LoggerFactory.getLogger(HomePageController.class); 

    public HomePageController() { 
     log.debug("HomePageController constructor()"); 
    } 

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

     log.debug("HomePageController handleRequestInternal()"); 

     List<Student> students = myService.getStudentList(); 
     return new ModelAndView("home", "students", students); 
    } 

    private MiscellaneousService myService; 

    public void setMyService(MiscellaneousService myService) { 
     log.debug("HomePageController setMyService() - start"); 
     this.myService = myService; 
     log.debug("HomePageController setMyService() - end"); 
    } 
} 

ウェルカムページはOKですが、私は/students/home.htmを書くとき404が返されます!助けてください。あなたが言う

答えて

0

ウェルカムページはOKですが、私が書くとき/students/home.htm 404が返されます!助けてください。

構成には、1つのURLマッピング(/home.htm用)が1つしかありません。 /students/home.htmでどこかを指し示す場合は、追加のマッピングを追加する必要があります。

詳細については、SpringドキュメントのHandler Mappingのセクションをご覧ください。

+0

web.xmlのurl-patternに* .htmを使用していると気付きました。私はハンドラマッピングを完全には読まなかったが、すべての答えがそこにあると仮定する。その話題を指摘してくれてありがとう。 – user816349

関連する問題