grails 布局
- 格式:doc
- 大小:484.50 KB
- 文档页数:17
react-native grid 排序-概述说明以及解释1.引言1.1 概述概述部分的内容可以从以下方面展开:React Native是Facebook开发的一个用于构建移动应用程序的框架。
它允许开发人员使用JavaScript和React的语言组合来构建本机移动应用程序。
其中,Grid布局是React Native中常用的布局方式之一,它能够将UI元素按照行列的形式进行排列,使得应用界面更加整齐和美观。
Grid布局是一种二维布局系统,将页面划分为一系列的行和列。
在React Native中,使用Flexbox布局来实现Grid布局。
Flexbox是一种弹性盒子布局模型,它可以根据容器的大小和元素的需求自动分配空间,使得UI元素能够在容器内部自动适应布局。
通过设置行和列的属性,我们可以实现各种复杂的Grid布局。
在React Native中实现Grid排序有多种方法。
我们可以使用Flexbox 布局的属性来控制元素的位置和大小,如flexDirection和justifyContent 等。
另外,我们还可以使用其他的库或组件来辅助进行Grid排序,如react-native-grid-view和react-native-flexbox-grid等。
这些库和组件提供了更多的布局选项和功能,使得Grid排序更加灵活和方便。
本文将通过介绍Grid布局的基本概念和原理,以及React Native中的Grid排序的实现方法和技巧,帮助读者更好地理解和应用Grid布局。
同时,本文还将探讨Grid排序在移动应用开发中的应用场景和优势,并展望Grid排序的未来发展方向。
通过阅读本文,读者将能够了解Grid布局在React Native中的基本原理和用法,以及如何灵活使用Grid排序实现更复杂和美观的移动应用界面。
希望本文能够对React Native开发者和移动应用开发者有所帮助,并为Grid排序的使用和发展提供一些思路和参考。
第26卷第8期 计算机应用与软件Vol 126No .82009年8月 Computer App licati ons and Soft w are Aug .2009基于Gra ils 框架的W eb 应用开发蔡波斯(北京林业大学管理科学与工程系,北京100083)收稿日期:2009-02-14。
蔡波斯,本科生,主研领域:J2EE,管理信息系统。
摘 要 在分析当前W eb 应用开发的现状之后,介绍了新兴框架Grails,并对其MVC 各层进行了简单的分析。
通过Grails 集成s p ring 的acegi 来开发一个简单的权限管理系统,并对中文化问题的解决方案进行了总结,对运用grails 进行快速开发进行了全面的展示。
总结了Grails 框架在利用java 资源进行企业级开发的优势。
关键词 Java Grails 权限管理D EVELO P ING W EB APPL I CAT IO N BASED O N GRA I L S FRAME WO RKCai Bosi(D epart m ent of M anage m ent Science and Engineering,B eijing Forestry U niversity,B eijing 100083,China )Abstract After analyzing the status quo of current web devel opment,an e merging web fra me work 2Grails is intr oduced .I n this article,first we si m p ly exp lained each layer of MVC model in Grails,then devel oped a si m p le p rivilege manage ment syste m by integrating the acegi in s p ring thr ough Grails,and illustrated the s oluti ons for dis p laying the Chinese infor mati on on Grails πpages .The rap id devel op ing efficiency with Grails has been fully showed as well .Finally,we su mmarised the advantages of Grails fra me in devel op ing the enter p rise 2level app licati on by utilising current java res ources .Keywords Java Grails Privilege management0 引 言当前的W eb 开发呈现三足鼎立的现状,ASP /ASP .NET,PHP,JSP 。
Grails企业web应用开发与部署作者:李茂圣日期:2009年8月20日本人保留所有权利序言Grails是个好东西,在中国算是个新东西,尝鲜总要付出代价。
我喜欢能快速解决问题的方式方法,有些时候即使付出代价,也值了。
在大家都还在犹豫的时候,综合分析后,决定在我们的项目中使用Grails来开发,为什么不选择ROR(Ruby and Rails),因为是java 出生的,所以选择GOG(Groovy On Grails)。
在将近一年的开发过程中,问题总是不断,总是在不断的尝试、咨询。
国内目前大部分的开发都是居于个人尝试,所以项目实际应用中的问题基本没人解答,在完成我们的前期开发和部署后,我简单的把我一些经验分享给大家,希望大家在将来的实际应用中有所帮助。
如果大家在开发过程中遇到什么问题,也可以进入我们的论坛(Groovy中文论坛:)交流或者直接发EMAIL(vottot@)给我,我们可以一起探讨、解决问题。
本教程主要讲解企业开发环境和部署环境,不会涉及太深入的开发。
同时,感谢每一位支持我们的人,更感谢为GOG推广做出努力的、无私奉献的人。
目录第1章简介1.1Grails介绍1.2Grails应用第2章开发准备2.1安装JDK2.2安装Grails2.3安装数据库2.3安装开发工具第3章Grails WebMail3.1创建第一个Grails程序3.2Grails工程结构3.3创建域(Domain)3.4创建控制器3.5创建视图3.6数据源配置3.7运行Grails程序3.8配置本地开发模式第4章Grails服务器环境4.1Tomcat安装4.2Apache安装4.3Mod_jk连接配置4.4创建自己的服务器配置4.5虚拟主机的配置第5章总结第1章简介Groovy在JAX会议上获得最具创新和创造性项目,注定他将成为一颗新秀,与JAVA的无缝集成,注定是企业级领域的一颗新星。
1.1Grails介绍Grails是一套用于Web敏捷开发的开源框架,它基于Groovy 编程语言,并构建于Spring、Hibernate和其它标准Java框架之上。
1、首先到intellij官网下载 (2)2、下载grails3:https:/// (2)3、将下载的grails压缩包解压到本地 (2)4、鼠标右键单击计算机--高级系统设置--(高级)环境变量 (2)5、在系统变量栏点击新建: (3)6、在系统变量栏找到Path,在末尾加上;%GRADLE_HOME%\bin,确定 (3)7、测试:打开dos命令窗口,运行:grails -version (3)8、配置Java jdk环境变量,jdk安装跟前面grails安装差不多 (4)9、打开intellij,新建grails项目(File-Poeject) (4)10、选择环境支持 (5)8、单击next,输入工程名,Finish,底部状态栏有个在动,说明程序正在添加配置 (5)9、部署项目,启动 (5)10、成功 (6)Intellij 2015+grails-3.1.5环境搭建1、首先到intellij官网下载intellij的安装包:/idea/或/idea/download/#section=windows(说明:intellij有两种版本,即:Community和Ultimate,Community意为社区版,Ultimate 为终极版,建议下载Ultimate这个版本,因为它的功能是最完整的,里面包含了对grails 的支持)。
license server激活:/idea/key.php2、下载grails3:https:///2.1 在grails官网的导航菜单打开Download2.2 点击右上方的Download按钮就可以下载最新版,你还可以选择Github下载其他版本3、将下载的grails压缩包解压到本地4、鼠标右键单击计算机--高级系统设置--(高级)环境变量5、在系统变量栏点击新建:6、在系统变量栏找到Path,在末尾加上;%GRADLE_HOME%\bin,确定7、测试:打开dos命令窗口,运行:grails -version成功8、配置Java jdk环境变量,jdk安装跟前面grails安装差不多8.1 新建变量:JAVA_HOME 变量值:E:\Java\jdk1.88.2 编辑Path,在末尾加上%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(前面没有分号的加上分号)8.3 新建:变量:CLASSPATH 变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 8.4 测试:9、打开intellij,新建grails项目(File-Poeject)10、选择环境支持8、单击next,输入工程名,Finish,底部状态栏在动,说明程序正在添加配置9、部署项目,启动10、成功(注:如果要导入grails项目到intellij中,首先要经过前面的步骤,新建一个测试项目先跑起来,这样的话能能测试你的运行环境是否正常,否则在你不知道运行环境是否正常的情况下就开始导入新项目,这样很难排查真正的问题,影响开发速度。
grid中的高级用法在网页设计和布局中,CSS的Grid布局是一种强大而灵活的工具。
除了常见的基本用法之外,Grid还提供了许多高级功能,可以帮助设计师更好地控制页面布局和元素位置。
1. 嵌套Grid:Grid布局支持嵌套,这意味着可以在一个Grid容器中创建另一个Grid布局。
这使得我们可以更精细地定义网页布局和元素的位置。
通过嵌套Grid,我们可以在一个Grid单元格内创建更复杂的布局,使得页面更具层次感。
2. 自适应网格:Grid提供了自适应网格的功能,这意味着我们可以根据元素的大小和内容自动调整网格的大小和位置。
通过设置grid-template-columns和grid-template-rows属性为auto,网格将自动调整以适应元素的大小。
这使得网页可以适应不同的屏幕尺寸和设备。
3. 网格对齐:Grid布局提供了丰富的网格对齐方式,可以更好地控制元素在网格单元格中的位置。
通过使用justify-items和align-items属性,我们可以水平和垂直对齐单个元素。
而通过使用justify-content和align-content属性,我们可以对齐整个网格中的元素。
4. 自由定位:Grid中的自由定位功能允许我们在网格容器中自由放置元素,而不受网格单元格的限制。
通过使用grid-column-start,grid-column-end,grid-row-start和grid-row-end属性,我们可以精确地指定元素在网格中的位置和跨度。
这使得我们能够更好地控制布局的细节和元素之间的间距。
5. 响应式设计:Grid布局可以与CSS媒体查询一起使用,从而实现响应式设计。
通过在不同的媒体查询中更改网格样式,我们可以根据不同的屏幕尺寸和设备调整网页的布局和元素排列。
这使得网页可以在不同的屏幕上呈现出最佳的视觉效果和用户体验。
Grid布局提供了许多高级用法,使得网页设计师能够更精确地控制页面布局和元素位置。
在这一期的精通Grails 中,Scott Davis 演示如何通过使用层叠样式表(CSS)、模板、标记库(T agLib)等技术来对Grails 应用程序的外观进行有趣的更改。
欢迎阅读第二年度的精通Grails。
正如我在2008 年的最后一篇文章中许诺的一样,在新的一年将使用新的应用程序。
再见了,Trip Planner!让我们欢迎blog 发布系统(blog publishing system)!我已经将这个应用程序命名为Blogito。
在西班牙语中,它表示“little blog”,或者是对笛卡儿的Cogito ergo sum(“我思故我在”)表示敬意。
可从 下载这个完整的应用程序。
在接下来的几篇文章中,您将一步步构建核心的功能。
这篇文章的重点是显著地更改Grails 应用程序的外观。
去年的Trip Planner 的外观很怪异,恐怕只有开发人员才会喜欢(说句公道话,与外观相比,我对核心功能更感兴趣)。
在本文中,通过使用一些CSS 和局部模板进行调整,将得到一个外观新颖的Grails 应用程序。
在这个过程中,您还可以简单温习一下Grails 特性,比如scaffold、自动时间戳、修改默认模板、创建自定义T agLib,以及调整关键配置文件(比如Bootstrap.groovy 和URLMapper.groovy)。
在开始之前,必须安装Grails 1.1。
撰写本文时,它还是beta 版。
安装Grails 1.1Grails 在Java 1.5 或1.6 上运行表现最佳。
通过命令提示符输入java -version,确保Java 版本是比较新的。
Java 1.5 或1.6 就绪之后,安装Grails 的步骤就很简单了:1从Grails 站点下载grails.zip 文件。
2解压缩grails.zip。
3创建一个GRAILS_HOME 环境变量。
4将GRAILS_HOME/bin 添加到PATH。
JavaGUI布局管理器容器可设置布局管理器,管理容器中组件的布局:container.setLayout(new XxxLayout());Java有6种布局管理器,AWT提供了5种:FlowLayoutBorderLayoutGridLayoutGridBagLayoutCradLayoutSwing还提供了⼀种:BoxLayout1、FlowLayout 流式布局顾名思义,组件像⽔流⼀样,从第⼀⾏开始,从左向右依次排列,碰到边界时转到下⼀⾏继续。
三个构造函数:FlowLayout() //使⽤默认参数FlowLayout(int align) //设置对齐⽅式FlowLayout(int align,int hgap,int vgap) //设置对齐⽅式、⽔平间距、垂直间距align是FlowLayout类的常量,⽐如:FlowLayout.LEFT,FlowLayout.CENTER2、BorderLayout 边界布局将容器划分为EAST、WEST、SOUTH、NORTH、CENTER五个部分,每个部分可放置⼀个组件。
2个构造函数:BorderLayout() //使⽤默认参数BorderLayout(int hgap,int vgap) //设置⽔平间距、垂直间距放置组件时需指定位置:container.add(Component comp, Borderlayout.SOUTH); //第⼆个参数是BorderLayout类的常量,指定组件位置container.add(Component comp); //缺省位置时,默认为BorderLayout.CENTER,放在中间⼀共5个位置,⼀个位置最多放1个组件。
当然,可以在⼀个位置放置多个组件,只是后放置的组件会覆盖之前放置的组件。
也可以⼀个都不放。
3、GridLayout ⽹格布局将容器划分为指定⾏数、列数的⽹格,每个格⼦的尺⼨都相同,⼀个格⼦中放置⼀个组件,适合组件⼤⼩差不多的,⽐如放置计算器的按钮。
grid布局详解说明在CSS当中,布局⼀直是⼀个⾮常重要的话题,在漫长的发展时间当中,出现了很多种布局⽅案,但是就整体来说主要分成解决PC端和移动端布局的两⼤类,在这两⼤类中包括例如传统的table布局,后期的display+float+position的布局⽅案,再⽐如CSS3中新增加的Flex布局和多列布局等等,⽽在本篇博⽂中,将会主要讲述⼀种⽐较新的布局⽅案Grid布局。
正是因为Grid布局的年纪较⼩,所以从兼容性上来说,要逊⾊于Flex布局,但是从实际的开发效率上来讲,却是⽐Flex更加强⼤,这也是本篇博⽂的出发点之⼀。
Grid布局从某种意义上来说和Flex布局很类似,都有着⾃⼰的⼀套属性和布局逻辑。
但是从复杂度来讲,是要超过Flex布局的,体现最直观的就是Grid当中包含的属性,数量上远远超过Flex布局。
所以如果你是⼀个新⼈,连Flex都不是很熟练,那么建议你先去研究⼀下Flex布局⽅案。
你可以把Flex理解为⼀维布局,⽽把Grid理解为⼆维布局,如果你对Flex⾮常熟练,将会让你对Grid的学习更加的顺畅。
因为Grid属性较多,你在学习Grid布局之前⼀定要做好⼗⾜的⼼⾥准备。
基本概念Grid布局某种意义上来说,和table是⾮常类似的,⼆者都是在⽹页中构建⼀个表格,然后将内容放进表格中从⽽实现布局的⽬的。
但是作为布局界新⼈的Grid确是远远⽐table更加的强⼤。
⾸先,先来弄清楚在Grid当中⾮常重要的⼀些概念。
容器: 采⽤⽹格布局的区域称之为容器。
项⽬: 容器内部的⼦元素为项⽬。
⾏和列: 既然要在⽹页中构建表格,那么必然存在⾏和列。
单元格: ⾏和列的交叉区域,称为单元格。
⽹格线: 将容器划分成不同区域的线,称之为⽹格线。
如图:开启Grid如何将⼀个容器变成Grid容器呢?可以通过下⾯的属性来设置:display:grid | inline-grid;display:grid可以将容器变为⼀个块级容器,容器内部采⽤⽹格布局,display:inline-grid可以将容器变为⼀个⾏内块容器,容器内部采⽤⽹格布局。
本章的目标是为Collab-Todo应用程序创建好的外观布局。
图5-1所示的框架希望能给你一个如何去布局应用程序的提示。
< xmlnamespace prefix ="v" ns ="urn:schemas-microsoft-com:vml" />图5-1 Collab-Todo程序布局上面的布局是一个通用的模式:页面中间是两列,两边空白是边框槽(gutter),再加上一个头部和尾部。
表5-1描述了该框架的每个组成部分。
表5-1 框架组成部分部件描述边框槽(gutter)提供浏览器的页边空白,以便主要内容显示在浏览器的中间区域顶栏(topbar)供登陆与退出,如果用户已登陆则显示用户名。
头部(Header)显示应用程序标题,本例中为:“Collab-Todo.”内容(content)程序主要内容显示区域,程序的大部分内容都在这里显示。
右边栏(righ sidetbar)第8章将利用右边栏显示友元列表。
底部(footer)显示版权信息像大部分模型-视图技术,Grails使用了一种版面布局(layout)和基于模板(template-based)技术去组装视图或者说UI。
一个模板就是一个视图的部分,位于grails-app/views目录下面,以下划线开头命名的。
下划线开头在Grails规约中表示是一个模板。
最好的练习是将模板与指定的域类关联起来,像User域类,它是位于域类视图目录,就像grails-app/views/user/_someTemplate.gsp。
你应该使模板更通用或把模板放到一个通用的地方让view共享,比如grails-app/views/common目录。
版面布局将模板组装起来并在页面上排版,你将用main.gsp(grails-app/views/layouts/main.gsp)和CSS(web-app/css/main.css)创建版面布局,并且创建两个模板((_topbar.gsp 和_footer.gsp)被所有的视图所共用,在main.gsp 中应用某个CSS式样并改变这个式样。
让我们从最简单的footer开始学习本章。
创建Footer本小节的目标是创建一个简单的版权信息在站点所有页面下方显示。
正如你所想的,你要在grails-app/views/common目录中创建一个名为_footer.gsp的GSP 文件(GSP fragment)。
之后再通过<g:render template="/common/footer" /> 标签将_footer.gsp模板添加到版面布局中。
这时需要增加一个<div>段到主版面布局的式样类来设计这个footer的式样,这个式样类是在main.css中定义的(You then need to style the footer by adding a <div> section to the main layout using a style class that you define in the main.css.)。
列表5-1显示的是你所需要做的。
列表5-1. Footer模板(_footer.gsp)<span class="copyright">© 2008 Beginning Groovy and Grails: From Noviceto Professional<br />Christopher Judd, Joseph Faisal Nusairat, and James Shingler</span>你需要将这版权信息添加到主版面布局(main layout)main.gsp中才会在所有页面中显示出来。
这里也是你所要添加<g:render>标签的地方(This is where the <g:render> tag1 comes to your aid),你使用带模板信息的<g:render>标签把模板插入到GSP中。
你所做的工作是在main.gsp的最后增加<g:rendertemplate="/common/footer" />这一行。
列表5-2所示的是main.gsp中的内容。
注意:根据规约规定,在标签中的模板属性字符串,模板名的下划线和.gsp是省略的。
Listing 5-2. 主版面布局(main.gsp)<html><head><title><g:layoutTitle default="Grails" /></title><link rel="stylesheet"href="${createLinkTo(dir:'css',file:'main.css')}" /><link rel="shortcut icon" href="${createLinkTo(dir:'images',file:'favicon.ico')}" type="image/x-icon" /><g:layoutHead /><g:javascript library="application" /></head><body><div id="spinner" class="spinner" style="display:none;"><img src="${createLinkTo(dir:'images',file:'spinner.gif')}"alt="Spinner" /></div><div class="logo"><img src="${createLinkTo(dir:'images',file:'grails_logo.jpg')}" alt="Grails" /></div><g:layoutBody /><g:render template="/common/footer" /></body></html>图5-2 显示的是重新载入后的主页面。
图5-2 增加版权提示底部的版权信息是有了,但与你想要的效果还是有一定差距。
如果字符显示在中间位置,并且有分隔线就比较完美了。
你可以直接在footer模板中加上式样信息,不过有个更好的解决方法,就是使用CSS。
你只需在主版面布局增加一个带上“footer”属性ID的<div>标签,以及在main.css中定义一个“footer”式样。
列表5-3所示的是你要在main.gsp中所做的改变。
列表5-3. 改变后的主版面布局文件(main.gsp)<html><head><title><g:layoutTitle default="Grails" /></title><link rel="stylesheet"href="${createLinkTo(dir:'css',file:'main.css')}" /><link rel="shortcut icon" href="${createLinkTo(dir:'images',file:'favicon.ico')}" type="image/x-icon" /><g:layoutHead /><g:javascript library="application" /></head><body><div id="spinner" class="spinner" style="display:none;"><img src="${createLinkTo(dir:'images',file:'spinner.gif')}"alt="Spinner" /></div><div class="logo"><img src="${createLinkTo(dir:'images',file:'grails_logo.jpg')}" alt="Grails" /></div><g:layoutBody /><div id="footer"><g:render template="/common/footer" /></div></body></html>列表5-4 Footer 式样文件#footer {clear:both;text-align: center;padding: 3px;border-top: 1px solid #333;}图5-3 显示改变后的效果。
图5-3 改变后的footer式样让我们重新回顾一下如何增加footer:首先,创建了一个_footer.gsp模板文件并把它放在grails-app/views/common 目录下。
第二,通过<g:render template="/common/footer" />标签把_footer.gsp模板放到版面布局中。