关于free marker

关于free marker

老师我配置了freemarker
看我下面这张图
相关截图:
https://img1.sycdn.imooc.com//climg/623c2be908ea7c0610010751.jpg

问题描述:
老师我已经配置好了freemarker模版引擎了。我webapp的目录下有个test.jsp,而在WEBINF目录下面也有个test.ftl,那么我这个方法里返回的是图是/test视图,也是说会返回test.ftl视图,但是如果我想返回的是test.jsp的视图的话要怎么改呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小尤 2022-03-24 17:26:27

同学你好,1、同学可以试一下视图解析,如下所示:

<!--视图解析器:DispatcherServlet给他的ModeLAndView-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
    <!--前缀-->
    <property name="prefix" value="路径"/>
    <!--后缀-->
    <property name="suffix" value=".jsp"/>
</bean>

2、同学也可以使用重定向或请求转发。如下所示:

 @RequestMapping("/t2")
    public String t2(Model model) {
        model.addAttribute("msg","t2");
        return "forward:/test.jsp";
    }

    @RequestMapping("/t3")
    public String t3() {
        return "redirect:/test.jsp";
    }

祝学习愉快!

  • 提问者 床前明月光i #1
    谢谢老师回答,但是我已经配置了freemarker的视图解析器了,如果又去配一个jsp的视图解析器会有冲突吗?
    2022-03-24 17:29:29
  • 好帮手慕小尤 回复 提问者 床前明月光i #2

    同学你好,是可以配置多个视图解析器的,如下所示:不过建议同学只配置一个视图解析器。

    <!--Freemarker配置-->
        <bean id="freeMarkerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
            <property name="order" value="0" />
            <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
            <property name="suffix" value=".ftl"/>
            <property name="cache" value="false"/>
            <property name="contentType" value="text/html;charset=UTF-8"/>
            <property name="exposeSessionAttributes" value="true"/>
            <property name="exposeRequestAttributes" value="true"/>
            <property name="exposeSpringMacroHelpers" value="true"/>
        </bean>
        <!--
               视图解析器链
              当定义多个视图解析器的时候,就会形成视图解析器链。当controller返回一个视图名称的时候,会在视图解析器链上按照排序顺序进行处理。
              每个视图解析器都实现了ordered接口,数值越小就越靠前,默认都是最大值,order属性时Integer类型
        注意:像InternalResourceViewResolver这种能解析所有的视图,即永远能返回一个非空View对象的ViewResolver一定要把它放在ViewResolver链的最后面
       -->
        <!--jsp视图配置-->
        <bean id="InternalResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="order" value="1" />
            <property name="prefix" value="/WEB-INF/jsp/" />
            <property name="suffix" value=".jsp" />
            <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView" />
        </bean>

    注:文件名需要不一致,如:index.ftl与test.jsp  

    祝学习愉快!

    2022-03-24 18:31:19
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师