Vraag Omleiden van de ene controller naar de andere controller methode


Ik gebruik Spring 3 en Tiles 2 in mijn applicatie en heb wat problemen met het omleiden. Bij voorkeur zou ik graag kunnen bellen of doorverwijzen van een Controller1-methode naar de Controller2-methode, maar tot nu toe zijn we niet succesvol geweest.

Ik heb geprobeerd een nieuw item te maken in het bestand pageviews.properties. Op die manier kon ik deze naam gewoon teruggeven aan Controller1 en zou ik de naam van mijn tegels uit de xml-bestanden opzoeken.

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

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

Maar wanneer ik probeer terug te keren, zoals hieronder getoond, bevat de URL createRejectionEmail als onderdeel van de URL - in plaats van dat te gebruiken om het zoeken in defs.     mav.setViewName ( "redirectRejectionEmail");     terugkeer 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>

Mijn huidige configuratie is hieronder.

<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>

Alle hulp en begeleiding zou zeer op prijs gesteld worden!


18
2018-06-20 16:26


oorsprong


antwoorden:


Vanaf uw controller kunt u het retourtype wijzigen in een ModelAndView en de onderstaande code retourneren. Dit zal het verzoek opnieuw richten en de controller bellen voor de nieuwe URL.

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

Als alternatief kunt u de HttpServletResponse gebruiken in uw controlemechanismemethode en een omleiding retourneren.

public void myController(HttpServletResponse response){
response.sendRedirect("/myURL");
}

43
2018-06-21 10:03



@RequestMapping(value = "/timeout", method = RequestMethod.GET)
    public ModelAndView loginForm(HttpServletRequest request,HttpServletResponse response) {


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

    }

Wanneer deze methode-handler aanroept, wordt deze omgeleid naar de / app / timeout-controller.


6
2017-11-14 06:21