【问题标题】:Spring MVC UrlBasedViewResolver custom view fileSpring MVC UrlBasedViewResolver 自定义视图文件
【发布时间】:2014-04-21 07:28:53
【问题描述】:

我有一个视图解析器:

<bean id="viewResolver"
        class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>

还有一个控制器:

@RequestMapping(value = "/home", method = RequestMethod.GET)
    public String loadPage(HttpServletRequest request,HttpServletResponse response, HttpSession session,ModelMap modelMap ) {
 String langlayout = "eng";
            UrlBasedViewResolver urlResolver = new UrlBasedViewResolver();          
            urlResolver.setPrefix("/WEB-INF/views/"+langlayout);
            urlResolver.setSuffix(".jsp");
            return "home/list.jsp";
}

点击 jsp 后,它仍然在 WEB-INF/views/home/list 而不是 WEB-INF/views/eng/home/list br> 如何定义自定义视图页面

【问题讨论】:

    标签: java spring jakarta-ee


    【解决方案1】:

    终于解决了我的问题

    <!-- Declare a view resolver -->
         <bean class="com.project.controller.AppPortalViewResolver">
            <property name="viewResolver" ref="viewResolver" />
        </bean>
    <bean id="viewResolver"
            class="org.springframework.web.servlet.view.UrlBasedViewResolver">
            <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
            <property name="prefix" value="/WEB-INF/views/" />
            <property name="suffix" value=".jsp" />
        </bean>
    

    AppPortalViewResolver.class

    public class AppPortalViewResolver implements ViewResolver {
    
     private ViewResolver viewResolver;
    
     public void setViewResolver(ViewResolver viewResolver) {
      this.viewResolver = viewResolver;
     }
    
    
     @Override
     public View resolveViewName(String viewName, Locale locale) throws Exception {
          /* do your logic to change the view name  */
          viewName = "ur_folder_structure";
         return viewResolver.resolveViewName(viewName, locale);      
    }
    

    【讨论】:

      【解决方案2】:
      @RequestMapping(value = "/home", method = RequestMethod.GET)
          public String loadPage(HttpServletRequest request,HttpServletResponse response, HttpSession session,ModelMap modelMap ) {
       String langlayout = "eng";
                  return langlayout+"/home/list.jsp";
      }
      

      【讨论】:

      • 是的,我试过这个..但我已经在一次性配置中做到了?像链接视图解析器
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 2018-03-10
      • 1970-01-01
      相关资源
      最近更新 更多