Java Web 项目的首页,一般都是配置 web.xml中的wecome-list-file。
但是这只可以配置html或者jsp文件,如果配置成action/controller服务器将提示找不到内容。
那么通常的做法是将首页设置成index.jsp,在response.sendRedirect到action/controller。这种没有什么不好,只不过,首页将看起来很奇怪,因为跳转后地址栏的地址将变成跳转后的样子。如http://www.google.com/home。对于最近一直纠结于网站的url设计来说是一件不可容忍的事情。
还有一种做法就是在index.jsp使用ajax在调用后台内容。这个也可以吧。
我所能想到的实现方式是,通过过滤器拦截在将首页请求转发到Action/Controller上。
首先想到但是通过Request.getRequestDispatcher("path").forward方式,但是发现path只能写成serlvet或者jsp。
想要跳转到struts的action/controller只能自己重写struts2的过滤器StrutsPrepareAndExecuteFilter。
我们直接继承StrutsPrepareAndExecuteFilter它,在url中判断是否首页请求,是则构建一个ActionMapping,跳转到自己的action上,一切就ok了。