これは確かにnoobの質問ですが、私は答えのためにstackoverflowをトラッキングするのに良い時間を費やしていますが、誰も私の場合はそうではないようですgo ...Spring MVCでRESTとJSPを混ぜるとJSPが見つかりません
私はSpring MVCを使用する新しいwebappを持っています。ほとんどのアプリケーション(99%)は純粋なRESTなので、「表示」はありませんが、単にJSONをワイヤに戻して送信するか、エラーなどの代替HTTPステータスを送信します。
例外実際のJSPである必要があるログインページですが、RESTコントローラをマップするために使用している設定は、通常のJSPマッピングが失敗する状態になってしまいます。ここで
は、私が持っているものです:
私のディスパッチャサーブレットの設定では、関連する部分である:それは働いて得るために私の試みにおいて
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
、私はまた、 "へのマッピングを追加しました現在、私のログインJSPにリダイレクトにHomeController」:web.xmlに、
<bean name="/" class="com.somepackage.HomeController"/>
今は私が持っている:
<servlet>
<servlet-name>spring-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring-dispatcher</servlet-name>
<url-pattern>/*</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/spring-dispatcher-servlet.xml
</param-value>
</context-param>
これは次のようになり、私のRESTfulなコントローラ、ため正常に動作します:
@Controller
@RequestMapping(value = "/api/user")
public class BlahBlahController {...
ただ、このようになります私の "にHomeController"、:私は "を打ったとき
@Controller
@RequestMapping(value = "/")
public class HomeController extends AbstractController {
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
return new ModelAndView("login");
}
}
がトリガされます/」というURLが表示されますが、ログにこのエラーが表示されます。
WARNING: No mapping found for HTTP request with URI [/WEB-INF/pages/login.jsp] in DispatcherServlet with name 'spring-dispatcher'
ここでは、 /WEB-INF/pages/login.jsp
の解決方法はわかりませんが(このページはbtwです)、これを動作させるにはどうすればいいか分かりません。
どのように動作するのか少し混乱します。誰でも手がかりを手に入れましたか?
ありがとうございました。
は、私はそれが重要かどうかわからないんだけど、なぜあなたは二度ビューリゾルバを定義していますか?また、あなたの 'HomeController'には' @Controller'の代わりに '@Component'が付いています。 – NilsH
ああ..笑..ええ、重複は間違いです...あなたが言ったように問題ではありません。 @ Component/@ Controllerの区別はよく分かります。私は今よりも変更して、やり直してみます。 HTTPでマッピングが見つかりませんでした。(この問題を解決するために編集しました) –