spring3 multi-view integration

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

源代码在附件中
主要配置:

<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 multiple views must be configured -->     <bean id="velocityConfig"

</bean>


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; public class FtlController { @RequestMapping("/ftl") @Controller Visit the ftl page: }

}








@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";
    }

}



After visiting, the page displays:

jsp page:




vm page




ftl page







Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326486005&siteId=291194637