私の目標は、/{任意のパス}と*.htmlを/*をマッピングせずにサーブレットにマッピングすることです。例えば:
map:
/foo
/foobar/
/bar.html
/foo/bar.html
don't map:
/foo.js
/bar.pdf
これを行うために、次のようにマップされたサーブレットとウェルカムファイルがあります。
web.xml:
<servlet-mapping>
<servlet-name>someServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
コントローラーでは、
@RequestMapping(value="/index.html", method=RequestMethod.GET)
public ModelAndView showPage(HttpServletRequest request){
...
}
これは機能しません-サーブレットはでトリガーされません/test
。ただし、で空のファイルを作成すると/test/index.html
、それが機能することがわかりました。デフォルトのサーブレットは、index.htmlを見つけることで何らかの形で役立つと思います。
残念ながら、静的ファイルに頼ることはできません。空白ファイルをハックせずに、また/ *サーブレットにマッピングせずに、このマッピングを機能させる方法はありますか?