(open to another method)/**
で例外を作成しながら、Spring mvc コントローラーをルート () パス (「/something」などのサブフォルダーではなく)にマップしたい。mvc:resources
これはそのフレームワークの ABC である必要がありますが、明らかに非常に複雑なものです。
Myapp-servlet.xml
には、次の明らかなマッピング例外があります。
<mvc:resources mapping="/favicon.ico" location="/favicon.ico" />
<mvc:resources mapping="/robots.txt" location="/robots.txt" />
そして、私はこのコントローラーを持っています:
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/**")
public class MainController {
@RequestMapping(method = RequestMethod.GET)
public String service(final HttpServletRequest request) {
final String servlet_path = request.getServletPath();
System.out.println(String.format("%s %s", new Date().toString(), servlet_path));
return "test";
}
}
「/」または「/test」または「/test/page」を押すと、次のような出力が得られます。
Fri Aug 03 00:22:12 IDT 2012 /
Fri Aug 03 00:22:13 IDT 2012 /favicon.ico
.. 見る?明示的に除外されている場合でもservice()
呼び出されています!/favicon.ico
XMLよりも「優先度」が高いと思い@Controller
ますが、除外を機能させるにはどうすればよいですか?
簡単な要件 - "/" に Web サイトがあること。
PSこの回答は、非常によく似た質問に対する回答です。
別の注意: この質問は、Tomcat のコンテキストに関するものではありません。