2016-09-27 69 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