2016-09-27 42 views
0

即時通訊整合支付網關與Spring啓動 - Thymeleaf重定向春天引導到模板頁面

我已經通過支付網關提供的示例應用程序提供了一種基於JSP像下面

response.jsp 

<%@ page language="java" session="true" %> 
<% 

String tranid=request.getParameter("tranid"); 
String result=request.getParameter("result"); 
out.println("REDIRECT=https://www.example.com/jsp/result.jsp?tranid="+tranid); 

%> 

支付網關將呼叫重定向(處理付款後)到response.jsp。在response.jsp裏面,他們重定向到另一個頁面來顯示結果。

在春季啓動

Controller類同樣的事情(這是考慮到提供重定向)

@RequestMapping(value= "/response") 
public String responseHandlerSuccess(ServletRequest request, Model model) { 
return "redirect:https://www.example.com/success?tranid="+tranid; 
} 

@RequestMapping(value = "/success", method = RequestMethod.GET) 
public String showProduct(@RequestParam Map<String,String> response, ModelMap response){ 
System.out.println("Success Received ..."); 
return "success" // Success Template 
} 

林能看到Sucess收到消息「

...

「但是頁面沒有被重定向到成功模板。所以支付網關會拋出錯誤頁面。如何使它工作?

+0

這不是因爲你返回一個字符串,而不是頁面。 – xenteros

+0

成功是我的模板名稱。它應該解析爲模板? – syv

回答

0

您需要配置Spring可以解析的文件。您可以使用不同類型的Resolver:ViewBased Resolver解析模板,UrlBased Resolver解析模板和重定向等。 要設置您的解析器,您需要通過XML或通過某些配置類實現。

這裏是旋轉變壓器的一個示例:

@Configuration 
@EnableMvc 
@ComponentScan("The package you want spring to scan") 
public class WebConfig extends WebMvcConfigurerAdapter{ 

    @Bean 
    public ViewResolver viewResolver(){ 
     UrlBasedViewResolver resolver = new UrlBasedViewResolver(); 
     resolver.setPrefix("Your View Directory, in my case it was '/WEB-INF/Views/'"); 
     resolver.setSuffix("Your Views'extention, .jsp for example"); 
     resolver.setViewClass(JstlView.class); 
     return resolver; 
    } 
} 

要完成我使用延伸AbstractAnnotationConfigDispatcherServletInitializer一類的配置。你需要覆蓋3種方法:

protected Class<?>[] getRootConfigClasses(); 
protected Class<?>[] getServletConfigClasses(); 
protected String[] getServletMappings(); 

第二個是你實際使用視圖解析器的地方。在我來說,我只是覆蓋它是這樣的:

@Override 
protected Class<?>[] getServletConfigClasses(){ 
    return new Class<?>[]{WebConfig.class}; 
} 

如果按照這個領導應正常工作,如果你需要更多的解釋,不要猶豫。

0

你正在使用Spring Boot,所以不需要做這樣的XML配置。

添加定行到你的application.properties文件

#Page settings 
spring.mvc.view.prefix= /view/html/ 
spring.mvc.view.suffix= .jsp 
相關問題