我有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。比春天尝试找到这条路径的视图解析器。我不想为此路径创建视图,而是重定向到另一个视图。我如何处理此路径并为此创建RedirectView? 我可以在我的视图解析器中从此方法获取请求参数吗?
答案 0 :(得分:1)
通过创建扩展UrlBasedViewResolver并覆盖其中的buildView方法的类,您可以实现重定向到与遗留代码控制器返回的url不同的视图。
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);
}
}
确保此自定义视图解析程序的优先级高于InternalResourceViewResolver。 有关buildView方法的更多信息,请查看here。