2

私はSpring MVCアプリケーション(バージョン3.0.5.RELEASE)を持っていて、これを私の中に持っていますmvc-config.xml

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

したがって、「/」へのリクエストは、ウェルカム ビューに転送されますwelcome.jsp

これは、私の場合、URLhttp://myproject-test.mydomain.com/を呼び出すと、welcome.jsp. いいけど延長しないと。URL の他にhttp://myproject-test.mydomain.com/、私はURL を持っていますhttp://myproject-anothertest.mydomain.com/。この URL を使用すると、ウェルカム ページを除いて、アプリケーション全体が同じになります。

を呼び出して、 の代わりにページhttp://myproject-anothertest.mydomain.com/が必要です。welcome-test.jspwelcome.jsp

それで、どうすればこれを行うことができますか?ユーザーがどのサブドメイン (myproject-test または myproject-anothertest) からサイトを呼び出し、welcome.jsp またはwelcome-test.jsp を表示するかを知る必要があります。

これを行う方法を知っている人はいますか?

よろしくお願いします。ティム。

4

1 に答える 1

1

タグはParameterizableViewController<mvc:view-controller>にマップされます

親であるAbstractControllerから独自のコントローラークラスを継承し、メソッドのrequestパラメーターをhandleRequestInternal使用して、ページへのアクセスに使用されているホスト名を推測し、適切なビューを使用することができます。

HTTPリクエストヘッダーHostには、ページへのアクセスに使用されている「仮想」サーバー名が含まれています(HTTP / 1.1を使用している場合)。古いHTTP/1.0プロトコルにはHostヘッダーがなく、一部のプロキシはトラフィックをHTTP / 1.0にマップします。その場合、異なる名前を使用してトラフィックを区別することはできません。

JSPでは、を使用<%=request.getServerName()%>してHostヘッダー値にアクセスできます。getServerNameについてはドキュメントを参照してください。

于 2011-03-10T14:02:10.160 に答える