首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Spring重定向到模板页面

问将Spring重定向到模板页面
EN

Stack Overflow用户
提问于 2016-09-27 08:12:12
回答 2查看 2.7K关注 0票数 0

Im将支付网关与集成在一起

我有支付网关提供的示例应用程序,它是基于如下所示的JSP

代码语言:javascript
复制
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中也是如此

控制器类(用于提供重定向)

代码语言:javascript
复制
@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
}

我能看到消息“

获奖者..。

“但是页面没有重新定向到成功模板。因此支付网关抛出错误页面。如何使其工作?”

EN

回答 2

Stack Overflow用户

发布于 2016-09-28 10:13:12

您需要配置Spring可以解析的文件。您可以使用不同类型的Resolver : ViewBased Resolver用于解析模板,UrlBased Resolver用于解析模板和重定向等等。要设置解析器,需要在via或某些配置类中实现。

以下是Resolver的一个示例:

代码语言:javascript
复制
@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种方法:

代码语言:javascript
复制
protected Class<?>[] getRootConfigClasses();
protected Class<?>[] getServletConfigClasses();
protected String[] getServletMappings();

第二个是实际使用视图解析器的地方。在我的例子中,我只是像这样覆盖它:

代码语言:javascript
复制
@Override
protected Class<?>[] getServletConfigClasses(){
    return new Class<?>[]{WebConfig.class};
}

如果你遵循这条线索,它通常会起作用,如果你需要更多的解释,不要犹豫。

票数 0
EN

Stack Overflow用户

发布于 2016-09-28 10:17:52

您正在使用Spring ,因此不需要这样做。

将给定行添加到application.properties文件中

代码语言:javascript
复制
#Page settings
spring.mvc.view.prefix= /view/html/
spring.mvc.view.suffix= .jsp
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39719461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档