spring3 多视图集成

使用spring3.2.9 集成多视图,可以使用jsp页面,ftl页面,vm页面。

[color=darkred]源代码在附件中[/color]
主要配置:

<bean id="freemarkConfig"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="classpath:freemark.properties" />
</bean>

<bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape" />
<bean id="FreeMarkerConfigurer"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/ftl/" />
<property name="defaultEncoding" value="UTF-8" />
<property name="freemarkerSettings" ref="freemarkConfig" />
<property name="freemarkerVariables">
<map>
<entry key="xml_escape" value-ref="fmXmlEscape" />
</map>
</property>
</bean>


<!-- requestContextAttribute 在页面中使用${rc.contextPath}就可获得contextPath -->
<!-- 配置FreeMark视图 -->

<bean id="freeMarkerViewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="contentType" value="text/html;charset=UTF-8" />

<property name="viewNames" value="*.ftl" />
<property name="viewClass"
value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />

<property name="suffix" value="" /><!-- .ftl -->

<property name="cache" value="true" />

<property name="exposeSessionAttributes" value="true" />

<property name="exposeRequestAttributes" value="true" />

<property name="exposeSpringMacroHelpers" value="true" />

<property name="requestContextAttribute" value="rc" />
<property name="order" value="1" />
</bean>



<!-- ############################################################## -->

<bean id="velocityViewResolver"
class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="viewNames" value="*.vm" /> <!-- viewNames 多视图必须配置 -->
<property name="cache" value="false" />
<property name="prefix" value="" />
<property name="suffix" value="" /> <!-- suffix 必须为空 -->
<property name="contentType">
<value>text/html;charset=UTF-8</value>
</property>

<!-- 使用springMacro、使用servlet的对象 -->
<property name="exposeSpringMacroHelpers" value="true" />
<property name="exposeRequestAttributes" value="true" />
<property name="exposeSessionAttributes" value="true" />


<!-- spring的日期格式化 -->
<property name="dateToolAttribute" value="dateTool" />

<!-- velocity toolbox -->
<property name="toolboxConfigLocation" value="/WEB-INF/vmtools/toolbox.xml" />

<property name="order" value="0" /> <!-- order 多视图必须配置 -->

</bean>

<bean id="velocityConfig"
class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="/WEB-INF/velocity/" />
<!-- velocity配置路径 -->
<property name="configLocation" value="classpath:velocity.properties" />

</bean>


<!-- ############################################################## -->

<!-- jsp 视图 -->
<bean id="internalResourceViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewNames" value="*.jsp" /> <!-- viewNames 多视图必须配置 -->

<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />

<property name="prefix" value="/WEB-INF/jsp/" />

<property name="suffix" value="" /> <!-- suffix 必须为空 -->

<property name="contentType" value="text/html;charset=UTF-8" />

<property name="order" value="2" /> <!-- order 多视图必须配置 -->

</bean>


java类代码:

访问jsp 页面:
@Controller
@RequestMapping("/jsp")
public class JspController {

@RequestMapping("/list")
public ModelAndView list(){
ModelAndView modelAndView = new ModelAndView("list.jsp");
modelAndView.addObject("name", "jsp........");

return modelAndView;

}
}

访问ftl页面:

@Controller
@RequestMapping("/ftl")
public class FtlController {

@RequestMapping("/hello")
public ModelAndView hello(){
ModelAndView model = new ModelAndView("hello.ftl");//文件后缀必须填写
model.addObject("name", "boce...");
return model;
}
}


访问 vm页面:


@Controller
@RequestMapping(value = "/demo")
public class DemoVelocity {
// Logger logger = LoggerFactory.getLogger(VelocityDemo.class);
@RequestMapping(value = "/welcome")
public String index(Model model) throws Exception {
model.addAttribute("name", "highkgao");

model.addAttribute("age", 20);
model.addAttribute("date", Calendar.getInstance().getTime());

//model.a
System.out.println(model.toString());

return "welcome.vm"; //文件后缀必须填写
}



@RequestMapping(value = "/test.do")
public String test(Model model) throws Exception {
model.addAttribute("name", "highkgao");


System.out.println(model.toString());
return "index";
}


@RequestMapping(value="/autoBind", method={RequestMethod.GET})
public String autoBindLogin(Model model){
model.addAttribute("accountmodel", new AccountModel());
return "login";
}


@RequestMapping(value="/autoBind2", method={RequestMethod.POST})
public String autoBindResult(Model model,AccountModel am){
model.addAttribute("accountmodel",am );
return "autoBindResult";
}

}


访问后页面显示:

jsp页面:

[img]http://dl2.iteye.com/upload/attachment/0124/9049/63595b08-46e0-3842-ad46-24bb59c07719.png[/img]


vm页面


[img]http://dl2.iteye.com/upload/attachment/0124/9051/a0509dc2-66ca-3f39-a6d6-8d112d5b5e63.png[/img]

ftl页面


[img]http://dl2.iteye.com/upload/attachment/0124/9053/70c261f8-4e7c-3053-82b8-820715fb3f1d.png[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值