私のアプリは Spring MVC (最新; 3.2.2) を使用して、JSON を返す RESTful API を作成します。これまでのところ、ビュー レイヤーはまったく必要ありません。しかし今、API の他に、単純なユーティリティ ページ (プレーンな動的 HTML) が必要であり、そのために JSP を使用したいと考えていました。
リクエストがhttp://localhost:8080/foo/<id>
コントローラー (Java) を通過し、JSP になるようにしたい。シンプルなはずですよね?しかし、私は 404 を得ています。ビューを解決する際に何かが正しくありません。
HTTP ERROR 404
Problem accessing /jsp/foo.jsp. Reason:
Not Found
コントローラー:
@RequestMapping(value = "/foo/{id}")
public String testing(@PathVariable String id, ModelMap model) {
model.addAttribute("id", id);
return "foo";
}
コントローラーの定義とリクエストのマッピングは機能します。このメソッドは正常に呼び出されます。
春の設定:
<mvc:annotation-driven/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/jsp/" p:suffix=".jsp"/>
問題はおそらくここにあります。私は、わずかに異なるプレフィックスを試し、JSP を の下WEB-INF
に置きました<mvc:view-controller path="/*" />
。
(InternalResourceViewResolver を指定する必要さえありますか、それともデフォルトのビュー リゾルバーがこれを処理する必要がありますか?)
JSP ファイル. src/main/webapp/jsp
(プロジェクトは Maven 規則を使用します) の下に、明らかに JSP があります。
この場所に何か問題がありますか?
web.xml :
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
私はSpring MVC のドキュメントを参照しましたが、私の問題はおそらくあまりにも些細で明らかであるため、そこで簡単にヘルプを見つけることはできません。:-P
誰かが私が間違っていることを教えてくれますか?