【问题标题】:Overriding/excluding ViewResolver for specific ModelAndView route in Controller覆盖/排除控制器中特定 ModelAndView 路由的 ViewResolver
【发布时间】:2015-07-02 10:10:57
【问题描述】:

已将内部视图解析器配置为:

@Bean
public InternalResourceViewResolver viewResolver() {
    InternalResourceViewResolver resolver = new InternalResourceViewResolver();
    resolver.setPrefix("WEB-INF/jsp/");
    resolver.setSuffix(".jsp");
    return resolver;
}

我试图在我的控制器中定义一个特定的路由,所以它重定向到一个不在 WEB-INF/jsp/ 中的 JSP,我正在尝试这样的事情:

@RequestMapping("/requiredURL")
public View specificView(){
    return new InternalResourceView("other/package/myView.jsp");
}

但我实际上需要将 tome 属性传递给视图,所以这就是我寻找发送 ModelAndView 的原因。

谢谢

【问题讨论】:

  • 为什么不直接把它移到JSP目录下呢?
  • 对于项目的requeriments,我实际上需要它在外面(有一个用于身份验证的过滤器,并且外部jsp需要是可访问的)
  • 现在其实已经解决了,也许我应该删除问题。
  • 我会修复您的授权。但是返回一个字符串应该可以添加一个forward: 前缀。 return forward:WEB-INF/index.jsp 将请求转发给 JSP。
  • 你是指只做return new ModelAndView("forward:WEB-INF/index.jsp")而不使用InternalResourceView吗?它不会做同样的工作吗?

标签: jsp spring-mvc model-view-controller spring-boot


【解决方案1】:

它正在发布问题,然后答案就来了:

@RequestMapping("/your_mapping")
public ModelAndView specificView(){

    InternalResourceView resourceView= new InternalResourceView("other/package/View.jsp");
    Map <> model = new HashMap<>();
    model.put("attubute","atrubute value")
    return new ModelAndView(resourceView,model);
}

我刚试了一下,效果很好。但如果有人有其他方法,请分享。

谢谢。

【讨论】:

    猜你喜欢
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 2013-03-29
    相关资源
    最近更新 更多