2016-04-23 59 views
0

リクエストが私のコントローラに届かない理由を見つけるために多くの例を試しますが、失敗します。 私のアプリケーションを起動するとホームページ(index.jsp)が表示されますが、フォームに記入して送信ボタンを押すと404エラーが見つかりません! は、ここに私のファイルです:spring mvcでリクエストがコントローラに届かない理由

のindex.jsp(ホームページ)

<html> 
    <body> 
    <form method="post" action="/form"> 
     <input type="text" name="name"/> 
     <input type="submit"/> 
    </form> 
    </body> 
</html> 

StudentController.java

package rankbooster.ir.controller; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.beans.factory.annotation.Qualifier; 
import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.*; 

/** 
    * Created by Mohammad Reza Khatami on 4/23/2016. 
*/ 
@Controller 
public class StudentController 
{ 
    @RequestMapping(value = "/form",method = RequestMethod.POST) 
    public String getFormData(@RequestParam("name") String name, Model model) 
    { 
     model.addAttribute("name",name); 
     return "index2"; 
    } 
} 

index2.jsp

<html> 
    <body> 
    <b>${name}</b> 
    <b>${family}</b> 
    </body> 
</html> 

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"> 

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

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/dispatcher-servlet.xml</param-value> 
    </context-param> 

    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>/</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" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:mvc="http://www.springframework.org/schema/mvc" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd  http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd  http://www.springframework.org/schema/mvc  http://www.springframework.org/schema/mvc/spring-mvc.xsd"> 

    <context:component-scan base-package="rankbooster.ir.controller"/> 
    <context:annotation-config /> 
    <mvc:annotation-driven /> 



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

</beans> 
+0

'/ WEB-INF/pages /'ディレクトリの 'index2.jsp'はありますか? –

+0

はいそれは/ WEB-INF/pages/ –

+0

の下にあります –

答えて

0
<form method="post" action="/form"> 

この

<form method="post" action="form"> 
+0

変更されません。 –

+0

btとにかくそれを変更する必要があります。 – Priyamal

0

への変更上記の行は、サーブレットマッピングを変更してみてくださいディスパッチャサーブレットの次のよう

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

/*注)

詳細はDifference between/and /* in servlet mapping url patternを参照してください。

+0

404エラーコード(ウェブフォルダの下)とlocalhost:8080/formが404も見つからないため、私はこれを行うと私のホームページを見ることができません。 –

+0

さて、あなたは私が現時点では見ない別の問題があるようです。おそらくDispatcherServletのログレベルを上げてより多くの洞察を得ることができますか? dispatcher-servlet.xmlの –

+0

がコントローラにナビゲートしている(Ctrl +クリック)と、空のapplicationContext.xmlもあります。 –

関連する問題