31

アプリケーションで Spring 3 と Tiles 2 を使用していますが、リダイレクトに少し問題があります。できれば、Controller1 メソッドから Controller2 メソッドを呼び出したりリダイレクトしたりできるようにしたいのですが、これまでのところ成功していません。

pageviews.properties ファイルに新しいエントリを作成しようとしました。そうすれば、Controller1 からこの名前を返すだけで、xml ファイルからタイルの定義名を検索できます。

createRejectionEmail.(parent)=tilesView
createRejectionEmail.url=createRejectionEmail.page

redirectRejectionEmail.(class)=org.springframework.web.servlet.view.RedirectView
rediectRejectionEmail.contextRelative=true
redirectRejectionEmail.url=createRejectionEmail.page

しかし、以下に示すように返そうとすると、URL に createRejectionEmail が URL の一部として含まれています。それを使用してタイルの定義を検索するのではありません。mav.setViewName("redirectRejectionEmail"); mav を返します。

<definition name="createRejectionEmail.page" extends="brandedLayout">
  <put-attribute name="targetFunction" value="status" />
  <put-attribute name="content" value="/WEB  INF/jsp/pages/status/createRejectionEmail.jsp" />
</definition>

私の現在の設定は以下です。

<bean id="resourceViewResolver"
class="org.springframework.web.servlet.view.ResourceBundleViewResolver"
p:order="0" p:basename="config.spring.viewresolution.pageviews"/>



<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
   <list>
  <value>/WEB-INF/jsp/**/views.xml</value>
    </list>
</property>
</bean>

ヘルプとガイダンスをいただければ幸いです。

4

2 に答える 2

61

コントローラーから、戻り値の型を ModelAndView に変更し、以下のコードを返すことができます。これにより、リクエストがリダイレクトされ、新しい URL のコントローラーが呼び出されます。

return new ModelAndView("redirect:/myURL");

または、コントローラー メソッドで HttpServletResponse を取り込んでリダイレクトを返すこともできます。

public void myController(HttpServletResponse response){
response.sendRedirect("/myURL");
}
于 2013-06-21T10:03:46.160 に答える
9
@RequestMapping(value = "/timeout", method = RequestMethod.GET)
    public ModelAndView loginForm(HttpServletRequest request,HttpServletResponse response) {


                return new ModelAndView("redirect:/app/timeout");

    }

このメソッド ハンドラーが呼び出されると、/app/timeout コントローラーにリダイレクトされます。

于 2014-11-14T06:21:34.053 に答える