快速业务通道

Apache Geronimo和Spring框架,第6部分:Spring MVC:使用Web视图技术 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
  <prop key="/home.vel">phonebookVelocityController</prop>            <prop key="/home.pdf">phonebookPDFController</prop>        </props>      </property>    </bean>    <bean id="phonebookVelocityController" class="phonebook.velocity.PhonebookVelocityController"/>    <!-- View Resolver for Velocity -->    <bean id="velocityViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver" >      <property name="cache" value="true"/>      <property name="prefix" value=""/>      <property name="suffix" value=".vm"/>    </bean>

定义 Velocity 控制器类

为什么要首先为 Velocity 定义一个控制器?记住您要用从数据库中读取的所有电话本条目填充主页 ,并且从数据库中读取此列表并把它作为一个对象传递给 Velocity 视图。Velocity 引擎将把此对象传 递给主页模板,该模板随后将使用 Velocity 模板语言标记迭代此对象。清单 7 显示了 PhonebookVelocityController 的代码。

清单 7. 从数据库中读取 PhonebookEntries 并传递给视图的类

public class PhonebookVelocityController implements Controller {    /** Creates a new instance of PhVelocityController */    public PhonebookVelocityController() {    }    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException, Exception  {      ModelAndView view = null;      if (request.getRequestURI().indexOf("home")!=-1) {        view = new ModelAndView("phonebook-template");        view.addObject("viewId", "home");        view.addObject("time", new Date() );        WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(request.getSession(). getServletContext());        IPhonebookDataProvider pb = (IPhonebookDataProvider) ctx.getBean("phonebook");        List phonebookEntries = pb.getPhonebookEntries();        System.out.println("Velocity No. of Entries =   "+phonebookEntries.size());        view.addObject("phEntries", phonebookEntries);      }      return view;    } }

您可以看到控制器使用 WebApplicationContext 来获取 phonebook bean 并从数据库中读取电话本条 目。然后它将此作为一个对象添加到视图中。您接下来将看到 Velocity 模板怎样读取它。

Apache Geronimo和Spring框架,第6部分:Spring MVC:使用Web视图技术(10)

时间:2011-10-13 IBM Arun Chhatpar

为主页视图创建一个 Velocity 模板

如同您为 Tile 视图所做的工作一样,需要在模板文件中定义默认布局。清单 8 显示了 phonebook- template.vm。

清单 8. 定义 Web 应用程序布局的默认模板

#set ($viewName = ${viewId}) #set ($viewName = "${viewName}.vm") ## View name is passed in dynamically from  controller.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号