0

私はSpring MVCの初心者で、非常に基本的なログインWebアプリを開発しようとしています. プロジェクトの実行中に以下のエラーが発生します。私はほとんどすべてを試しましたが、過去 2 週間からこのエラーを修正できませんでした。誰か助けてください。

May 21, 2013 2:37:12 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/SpringWeb/WEB-INF/jsp/loginnn.jsp] in DispatcherServlet with name 'spring'

私のjspページはWEB-INF/jspの下にあります。コントローラーのメソッド loginpage が呼び出されていますが、ビュー名がレンダリングおよび解決されていません。よろしくお願いいたします。

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>testspring</display-name>
<servlet>
<servlet-name>frontcontrol</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>frontcontrol</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

frontcontrol-servlet.xml

<context:component-scan base-package ="com.shell.spring.testspringapp">
</context:component-scan>
<bean id ="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />      
</bean>

</beans>

コントローラ クラス

@Controller

public class Firstcontrol {

@RequestMapping(value="/")
public ModelAndView invokeme(Model m)
{

ModelAndView mav=new ModelAndView();
mav.setViewName("result");
System.out.println("In method");
return mav;
}

@RequestMapping(value="/submit" ,method=RequestMethod.GET)
public String submit(Model m)
{
System.out.println("In submitmethod");
return "submit";
}
}
4

5 に答える 5

1

<context:component-scan base-package="your base packege " />

spring 構成 xml の次のセクションを確認する必要があります。どこかからコピーして、パッケージ名にするのを忘れたのかもしれません。その場合、Spring はパッケージをスキャンできず、最終的にこのエラーを表示します。

于 2016-11-02T07:33:42.867 に答える
1

DispatcherServlet を「/」にマッピングしているので<mvc:default-servlet-handler/>spring-servlet.xml

于 2013-05-21T13:09:06.930 に答える
0

web.xml ファイルでは、[サーブレット名]-context.xml という従来の名前を使用していないため、構成ファイル (spring-servler.xml) をディスパッチャ サーブレットで使用するように指定する必要があります。

Spring はディスパッチャー サーブレットの構成ファイルを見つけることができないため、viewresolver は登録されません。私の例では「spring-servler.xml」はWEB-INFフォルダー内にあると想定しているため、調整が必要になる場合があります。

また、ディスパッチャーを介してすべてをマッピングするのではなく、キャッチオールとして機能する/ため、静的リソースを解決する必要がある場合に役立つサーブレットマッピングを切り替えたことにも注意してください。/

<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/spring-servler.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

JSTL を使用していない場合は、通常のビュー リゾルバーを使用することもできます。

jstl ビュー リゾルバーを置き換えます。

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

と:

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

Stringビュー名を指定するコントローラから を返してみてください:

 @RequestMapping(value="/")
 public String loginpage(Model model)
{  
   Employee emp=new Employee();
    ModelAndView mav=new ModelAndView();
    model.addObject("emp", emp);
    return "loginnn";
}
于 2013-05-21T09:53:39.473 に答える
0

@sanjay と @Will Keeling はどちらも正しいです。<mvc:default-servlet-handler/>(最後のハンドラーとして)を使用し、 と の両方<mvc:annotation-driven/>を有効にする必要があります。<context:Annotation-config/>

于 2013-09-23T21:05:24.493 に答える