0

私はいくつかのサンプルアプリケーションを実行しようとしています。しかし、何も入っていないビューを表示しようとすると、「要求されたリソース () は利用できません」のような出力が得られます。私が間違っていたところを修正してください..

WebContent/index.jsp

<% 
System.out.println("--inside index--");
response.sendRedirect("newUser.jav"); %>

ウェブコンテンツ/WEB-INF/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_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>xHaiSpring</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

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

</web-app>

WebContent/WEB-INF/dispatcher-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:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    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">

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="viewResolver"
        p:prefix="/JSP/" p:suffix=".jsp">
    </bean>

</beans>

コントローラーファイル

package com.mycontroller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class UserController{
    @RequestMapping(value="/newUser", method=RequestMethod.GET)
    public ModelAndView newUserForm()
    {
            System.out.println("inside controller");
        return new ModelAndView("registerUser");
    }

}

そして、空のjspページであるWebContent/JSP/にregisterUser.jspがあります

何が問題ですか?そのコントローラーファイルにアクセスできないのはなぜですか?

4

4 に答える 4

1

org.springframework.web.servlet.handler.SimpleUrlHandlerMappingを使用している場合は、これを定義するために使用します

   <property name="mappings"><props> <prop key="/url.com">controllerName</prop> 
<bean id="controllerName" class="controllerclass"> </bean>
于 2012-10-03T08:57:34.253 に答える
1

コントローラ クラスの場所はどこですか。

アプリケーション コンテキスト xml ファイルに基本パッケージを追加します。

<context:component-scan base-package="com.sparkle" />

も試してください

<% 
System.out.println("--inside index--");
response.sendRedirect("jsp/newUser.jav"); %>

あなたのjspで

于 2012-05-15T10:23:45.047 に答える
0

ここでは間違いがほとんどないと思いますが、少なくともそう見えます。

1)まず第一に、UserControllerあなたは戻ってきnew ModelAndView("registerUser")ます。つまり、登録されたビューリゾルバーは、という名前のビューを探す必要がありますregisterUserviewResolverコードは、接尾辞を指すIDを/JSP/持つビューリゾルバーを登録し.jspます。WEB-INF/viewsSpringの外部から簡単にアクセスできないように変更してください(これは一般的にセキュリティ上の予防策です)。これで、ビューはに配置されWebContent/WEB-INF/views/registerUser.jspます。ビューの名前は、特定のビューファイルを見つけるために使用されることに注意してください。

2)コントローラーで設定@RequestMapping(value="/newUser", method=RequestMethod.GET)しましたが、明示的にSpringに*.javパス(in web.xml)でリクエストをマップするように指示しています。したがって、への呼び出し/newUserはSpringによっても処理されません。サーブレットには必ず<url-pattern>*</url-pattern>マッピングを使用してください。

3)Springがどのように機能するかについての基本的な知識がなくても、Springをセットアップしたいようです。インターネットで入手できる適切なチュートリアルを必ず読んでください。詳細な説明については、Springのリファレンスを参照してください。そうでなければ、あなたはトラブルを求めています。フレームワークを使用するには、ある程度の学習曲線が必要です。そうしないと、すぐにイライラします。

于 2012-05-15T11:23:25.820 に答える
0

コンソールで「--inside index--」のみを取得し、「inside controller」を取得していないため、問題はリクエストがコントローラーに到達していないようです。

オンライン

response.sendRedirect("newUser.jav"); %>

クエリの先頭に「/」を追加してみてください。

また、以下の「/*.jav」を使用してみましたか

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>*.jav</url-pattern> // have you tried /*.jav 
  </servlet-mapping>
于 2012-05-15T10:10:08.207 に答える