Spring MVC - >依赖于URL显示欢迎页面

时间:2011-03-10 13:36:31

标签: spring spring-mvc viewcontroller

我有一个Spring MVC应用程序(版本3.0.5.RELEASE),我在mvc-config.xml中有这个:

<mvc:view-controller path="/" view-name="welcome"/>

因此,对“/”的请求将转发到欢迎视图welcome.jsp

这意味着,在我的情况下,调用网址http://myproject-test.mydomain.com/会转发到welcome.jsp。没关系,但我必须扩展它。除了网址http://myproject-test.mydomain.com/,我还有网址http://myproject-anothertest.mydomain.com/。使用此URL,整个应用程序应该是相同的,欢迎页面除外。

致电http://myproject-anothertest.mydomain.com/,我想要welcome-test.jsp页而不是welcome.jsp

那么,我该怎么做呢?我必须知道用户在哪个子域(myproject-test或myproject-anothertest)调用该站点,然后向他显示welcome.jsp或welcome-test.jsp。

有谁知道如何做到这一点?

提前谢谢你&amp;最诚挚的问候,蒂姆。

1 个答案:

答案 0 :(得分:1)

标记<mvc:view-controller>映射到ParameterizableViewController

您可以从其父AbstractController继承自己的控制器类,并使用方法request中的handleRequestInternal参数来推断用于访问您的页面的主机名,然后使用适当的观点。

HTTP请求标头Host包含(如果使用HTTP / 1.1)用于访问您的页面的“虚拟”服务器名称。较旧的HTTP / 1.0协议没有Host头,有些代理将流量映射到HTTP / 1.0,在这种情况下,您将无法区分使用不同名称的流量。

在JSP中,您可以使用<%=request.getServerName()%>来访问Host标头值。请参阅getServerName的文档。