2012-01-21 10 views
0

Spring 3.0.7のリクエストマッピングとSpringの標準テーマの実装に問題があります。だから、http://myApp/myUrlとURLが処理されSpringリクエストのマッピングとテーマ

@ Controller 
@RequestMapping(value="myUrl") 
Public MyControllerClass 

@RequestMapping(Method=requestMethod.GET) 
Public myGetHandler(){ 
} 

を次のように

私のコントローラが実装され、すべてが良いです。

テーマがリンクリンクこの

<a href="?theme=mytheme"/> 

とテーマの春の設定によって活性化されると、私はmyUrlページに午前のであれば

<bean id="themeChangeInterceptor" class="org.springframework.web.servlet.theme.ThemeChangeInterceptor"> 
    <property name="paramName" value="theme" /> 
</bean> 

ですこのリンクをクリックするとテーマがロードされ、myGetHandlerも呼び出されます。

しかし

私は私のURL

/myUrl?someParm=somevalue 

にパラメータを追加する場合は、今の私のコントローラは以前のように動作し、私はパラメータにアクセスするが、テーマのリンクをクリックすることができます(HREF上記参照)が、このためにページは次のようになります。

/myUrl?theme=myTheme 

例外は発生せず、ページまたはテーマロードも発生しません。私は後でスタックトレースをポストするでしょうが、それはコントローラの問題を示唆しています(テーマインターセプタではありません)。

テーマとパラメータ化されたURLが機能するようにコントローラをマップするにはどうすればよいですか?理想的には、私のパラメータマッピングされたURLだけを処理するようにリクエストマッピングを変更したいと思います。

私は、これはそれがテーマのリンクに失敗した私のパラメータとのリンクのために動作しますが

@RequestMapping(value="myUrl",params = "someParam=someValue") 

に私の要求のマッピングを変更してみました。

+0

「テーマリンクをクリックするとクラッシュする」と詳しく説明すると役に立ちます。リンクのURLは何ですか?クリックするとどうなりますか?コード内で例外が発生した場合は、完全なスタックトレースと関連するコードを送信します。 –

+0

エラー状態を明確にしました。私は後でスタックトレースを投稿します – stimpy

答えて

1

私の推測では、urlにparamsがある場合、<a href="?theme=mytheme"/>のcasues double "?"をクリックします。宛先のURLに/myUrl?someParm=somevalue?theme=mythemeのように

URLを1つだけ作成するには、c:urlやjavascriptのようなものを使用する必要があります。 &をparams delimeter

+0

テーマURLは春に指定されています。私はそれを変更することはできません。これはテーマインターセプタによって傍受されます。私はデバッグログを確認して確認しますが、テーマインターセプタが起動すると、既存のURLを「拒否」します – stimpy

関連する問題