gpt4 book ai didi

java - 如何在 Spring 中为 View 路径设置自定义 View 解析器

转载 作者:行者123 更新时间:2023-12-01 13:03:01 25 4
gpt4 key购买 nike

我有带有 Controller 的lib(spring-social),它具有以下代码:

    @RequestMapping(value="/{providerId}", method=RequestMethod.GET)
public String connectionStatus(@PathVariable String providerId, NativeWebRequest request, Model model) {
setNoCache(request);
processFlash(request, model);
List<Connection<?>> connections = connectionRepository.findConnections(providerId);
setNoCache(request);
if (connections.isEmpty()) {
return connectView(providerId);
} else {
model.addAttribute("connections", connections);
return connectedView(providerId);
}
}

此代码的返回 - 类似/connect/twitterConnected 的路径。比 spring 尝试找到此路径的 View 解析器。我不想为此路径创建 View ,而是重定向到另一个 View 。我如何处理此路径并为此创建 RedirectView?我可以在 View 解析器中从此方法获取请求参数吗?

最佳答案

通过创建一个扩展 UrlBasedViewResolver 的类并重写其中的 buildView 方法,您可以实现重定向到与从旧代码 Controller 返回的 url 不同的 View 。

    public class CustomizedViewResolver extends UrlBasedViewResolver {
@Override
protected AbstractUrlBasedView buildView(String viewName) throws Exception {
String newViewName;
if(viewName.equals("YourLegacyCodeViewName")){
newViewName = "ViewNameYouWantToRedirect";
}else{
newViewName = viewName;
}
return super.buildView(newViewName);
}
}

确保此自定义 View 解析器的优先级高于InternalResourceViewResolver。有关 buildView 方法的更多信息,请查看 here .

关于java - 如何在 Spring 中为 View 路径设置自定义 View 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23413009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com