Im将支付网关与集成在一起
我有支付网关提供的示例应用程序,它是基于如下所示的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内部,它们将重定向到另一个页面以显示结果。
在Spring中也是如此
控制器类(用于提供重定向)
@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
}我能看到消息“
获奖者..。
“但是页面没有重新定向到成功模板。因此支付网关抛出错误页面。如何使其工作?”
发布于 2016-09-28 10:13:12
您需要配置Spring可以解析的文件。您可以使用不同类型的Resolver : ViewBased Resolver用于解析模板,UrlBased Resolver用于解析模板和重定向等等。要设置解析器,需要在via或某些配置类中实现。
以下是Resolver的一个示例:
@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};
}如果你遵循这条线索,它通常会起作用,如果你需要更多的解释,不要犹豫。
发布于 2016-09-28 10:17:52
您正在使用Spring ,因此不需要这样做。
将给定行添加到application.properties文件中
#Page settings
spring.mvc.view.prefix= /view/html/
spring.mvc.view.suffix= .jsphttps://stackoverflow.com/questions/39719461
复制相似问题