`
请输入用户名
  • 浏览: 46825 次
  • 性别: Icon_minigender_1
  • 来自: martian
社区版块
存档分类
最新评论

spring roo页面构成部分分析

    博客分类:
  • java
 
阅读更多

自己之前做的笔记,分析了一下spring roo生成的页面部分,直接copy过来,不做布局了也不难看,呵呵。。

 

 

 页面部分采用的是tiles,是由几个页面拼装成的一个页面,布局由webapp\WEB-INF\layouts\layouts.xml 控制,
     自动生成的layouts.xml中,设计了两个布局,一个是default,一个是public,同default的区别就是没有包含menu
     这是总的控制,具体到每个页面,就由对应的views.xml来控制,roo生成的views.xml位于 views目录下,首先会有
     一个基本页面的views,
       <definition extends="default" name= "index">
         <put-attribute name="body" value= "/WEB-INF/views/index.jspx" />
       </definition >
     记录的是 index 链接指向的页面继承自default,body部分由 index.jspx 来填充。除此以外还有几个其他的异常处理页面
     然后会看到几个文件夹,名字是以roo生成时候的对象名来命名,意味着是对应model的操作页面,其下边包含了基本的grub页面和一个对应views.xml配置,与根目录下的配置文件不同的是,这里的页面布局一般继承自default,也就是默认的页面布局。Controller中返回的页面链接在这里可以找到。
          <definition extends="default" name="toppings/list">
               <put-attribute name= "body" value ="/WEB-INF/views/toppings/list.jspx" />
        </definition>
     
     接下来分析一下最简单的 index.jspx。
     最上边的div 引入了页面中采用的 tag包,引用的写法比较简单方便,同时声明了命名空间和指向的tags包。
     <div xmlns:spring="http://www.springframework.org/tags"
        xmlns:util="urn:jsptagdir:/WEB-INF/tags/util"
        xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
     其中 jsp 标签用来处理页面的一些配置项,比如UTF-8的页面编码等
     spring标签是spring 的标签库,在本页面中主要用来国际化:spring:message。
     <spring:message var= "title" code ="welcome_titlepane"
               arguments=" ${app_name}" htmlEscape ="false" />
     这个国际化是相当于定义变量一样,他将根据welcome_titlepane去message.properties国际化文件中找到对应code,并将${app_name}作为参数传递到code中拼成一句话,然后存到遍历 title中,下文中就可以使用 ${title} 来使用国际化了的信息。
     重点util标签来了,这个标签不是标准库,是roo为了方便开发人员保留出来的库,我们可以根据/WEB-INF/tags/util来找到这个包的位置。页面中使用了< util:panel id ="title" title ="${title} ">,这个标签指的就是 util包下的panel.tagx。将其打开后可以看到这也是类似jspx页面的一个文件,其中也引入了一系列tags包,在文件上端整整齐齐的有一排
     <jsp:directive.attribute name= "id" type ="java.lang.String" required= "true" rtexprvalue="true" description= "The identifier for this tag (do not change!)" />
       <jsp:directive.attribute name="title" type= "java.lang.String" required ="true" rtexprvalue="true" description= "The page title (required)" />
       <jsp:directive.attribute name="render" type= "java.lang.Boolean" required ="false" rtexprvalue="true" description= "Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
  。。。
     这是这个tag的声明,声明了<util:panel />中可以有哪些属性,包含属性的类型和描述等信息。下边的内容就是对传入进来的这些属性进行处理,用的是标准标签库,不难看懂。虽然在这里不能调试,不过由于会被解释为基本的html,那就可以采用javascript来弹一下值 <script>alert("${id}");</script>。经过声明、处理之后,走到了
      <script type="text/javascript"> dojo.require('dijit.TitlePane'); </script>
    <div id="_title_${sec_id} _id">
      <script type="text/javascript"> Spring.addDecoration(new Spring.ElementDecoration({elementId : '_title_${sec_id}_id' , widgetType : 'dijit.TitlePane', widgetAttrs : {title: '${sec_title}' , open: ${sec_openPane}}})); </ script>
      <jsp:doBody />
    </div >
     这里,这里就是要转换html的主体,执行了相关的javascript、填充了上文处理出来的“页面内变量”。由于panel是一个外围tags,其内部可以包含其他内容,这部分内容会在被解析完成后填充到<jsp:doBody />中,之后加上</div >尾巴,该标签解析完成。我们可以通过查看源码来了解到这里被解析的结果。
     <script type="text/javascript">dojo.require('dijit.TitlePane');</script>
<div id= "_title_title_id">
        <script type= "text/javascript">Spring.addDecoration( new Spring.ElementDecoration({elementId : '_title_title_id' , widgetType : 'dijit.TitlePane', widgetAttrs : {title: '欢迎 PizzaShop' , open: true}})); </script>
        <h3> 欢迎 PizzaShop</h3 >
        <p> 欢迎内容</p >
</div>
</div>
   通过谷歌或者火狐,能够看到dojo展开之后页面的最终结果。了解这些之后,应该可以将dojo一点一点替换成自己熟悉的js框架{Ext、JQuery}。而且可以从panels标签的构造过程来看,roo狠狠的简化了标签的开发,开发人员可以很方便的修改已有标签和开发新的标签。
分享到:
评论
1 楼 xinghe_wang 2012-07-17  
谢谢你啊!最近正在 学习SpringRoo  。这个对我的帮助很大!

相关推荐

    Spring Roo In Action

    在Web开发部分,Spring Roo可能讲述了如何快速创建和部署Web应用程序,利用Spring Roo提供的命令,开发者可以迅速构建出基于Spring MVC的应用结构,包括视图层的实现。这部分内容很可能涉及到Spring Roo对于Web层的...

    Spring Roo 简介,第 4 部分: 用 Spring Roo 和 Cloud Foundry 在云中快速开发应用程序

    **Spring Roo 简介,第 4 部分: 用 Spring Roo 和 Cloud Foundry 在云中快速开发应用程序** 在本篇文章中,我们将深入探讨 Spring Roo 的使用,以及如何结合 Cloud Foundry 进行云端应用开发。Spring Roo 是一个...

    spring roo使用文档

    - **利弊分析**:分析移除 Spring Roo 后对项目的影响。 - **步骤指导**:提供详细的步骤说明如何逐步移除 Spring Roo。 以上是根据给定的 Spring Roo 文档摘要整理出的关键知识点,通过这些知识点的学习和掌握,...

    spring roo in action

    书中还涉及了Web开发部分,探讨了如何使用Spring Roo快速搭建Web应用程序,包括使用Spring MVC进行控制器和视图层的快速开发。Spring Roo的Web开发支持包括了多种Web层技术,方便开发者根据项目需求选择合适的技术...

    Spring ROO

    总的来说,Spring ROO是Spring生态体系中的一个重要组成部分,它通过自动化工具和最佳实践,极大地提升了开发效率,降低了企业级应用的开发复杂性。掌握Spring ROO的使用,对于提高开发者的生产力和项目进度具有显著...

    Spring Roo命令文档

    Spring Roo是Spring框架的一部分,它提供了一种快速开发工具,帮助开发者在Java应用中创建和管理代码。Roo通过自动化过程,简化了常见的开发任务,如设置项目结构、创建实体类、生成数据库表映射以及创建CRUD操作。...

    spring roo 1.1.3 学习资料

    Spring Roo是Spring框架家族中的一个创新工具,旨在简化Java应用程序的开发过程,特别是企业级应用。它基于Spring的模块化架构,提供了一种快速开发、自动化代码生成和最佳实践集成的解决方案。Spring Roo 1.1.3是该...

    SpringRoo 官方文档-版本 2.0.0.RC1

    SpringRoo 是一款由 Pivotal Software(现为 VMware 的一部分)开发的快速应用开发工具。它旨在帮助开发者简化基于Spring框架的应用程序构建过程。SpringRoo 通过提供一系列自动化代码生成功能,允许开发者在几分钟...

    spring roo 生成数据库表

    Spring Roo是Spring框架家族中的一个工具,用于加速Java开发,特别是企业级应用的构建。它通过命令行界面或集成开发环境(IDE)插件提供了一种快速开发的方式,可以帮助开发者生成代码、设置依赖和配置,使得开发...

    spring-roo-1.1.5.RELEAS

    Spring Roo是Spring框架家族中的一个开发工具,它旨在加速Java应用程序的开发过程,特别是通过提供命令行接口和集成开发环境(IDE)插件来简化常见的编程任务。标题"spring-roo-1.1.5.RELEASE"指的是Spring Roo的一...

    spring-roo-1.3.2.zip

    Spring Roo是Spring框架家族中的一个开发工具,它旨在加速Java应用程序的开发过程,特别是通过自动化常见任务和提供代码生成功能。Spring Roo 1.3.2是该工具的一个版本,其发布版本为RELEASE,意味着它是稳定且可供...

    spring-roo-2.0.0.RC1.zip

    Spring Roo是Spring框架家族中的一个开源工具,旨在简化Java应用程序的开发过程,特别是Spring MVC和Spring Data应用。这个"spring-roo-2.0.0.RC1.zip"压缩包包含的是Spring Roo的2.0.0 Release Candidate 1版本,这...

    springroo快速学习

    SpringRoo是一个基于Java的开发工具,旨在加速Spring框架的应用程序开发。它通过自动化许多常见的配置和代码生成任务,使得开发者能够更专注于业务逻辑,而不是基础架构。在本"SpringRoo快速学习"资料中,我们将深入...

    spring-roo-docs

    主要组成部分包括: - 实体层:负责数据模型的定义。 - Web层:处理用户界面和网络通信。 - 服务层:提供业务逻辑处理。 - DAO层:处理数据访问操作。 **3.2 关键技术** - **AspectJ:** 提供面向切面编程能力,...

    os-springroo2-sample_code

    这个模块同样会演示Spring Roo如何帮助构建RESTful API,集成Spring Security进行权限控制,以及如何使用Thymeleaf或其他模板引擎来渲染前端页面。此外,Spring Roo的命令行工具可能已经自动生成了数据库迁移脚本,...

    Spring Roo - Reference Documentation

    ### Spring Roo - 高效开发框架的深度解析 #### 引言:Spring Roo与生产力的飞跃 Spring Roo作为Spring框架的扩展,旨在显著提升开发者在构建企业级Java应用时的效率。它通过自动化代码生成、简化项目搭建以及提供...

    spring-roo-1.1.0.M1.zip_54587.m1_M1 ssh_Spring Roo download_spri

    Spring Roo是Spring Framework的一个附加工具,它为Java开发者提供了一个快速开发平台,旨在简化和加速应用程序的构建过程。"spring-roo-1.1.0.M1.zip_54587.m1_M1 ssh_Spring Roo download_spri"这个标题暗示了这是...

    vaadin-springRoo可运行的例子

    Spring Roo则是Spring框架的一部分,是一个快速应用开发工具,旨在简化Java开发过程。Spring Roo通过自动化代码生成和配置管理,帮助开发者快速搭建项目结构,专注于业务逻辑的实现。它支持多种技术栈,包括Spring ...

    Spring Roo 简介

    - **快速开发**:Spring Roo 通过自动化大部分常规任务来加速应用程序开发过程,例如创建实体、服务层、控制器以及视图。 - **标准遵循**:生成的应用程序遵循 Spring 最佳实践,使用 Bean Validation (JSR-303) 和 ...

Global site tag (gtag.js) - Google Analytics