grails ui的插件功能众多,可以完成很多效果比如bar图、柱状图、拖拽、菜单、richEditor文本编辑等等。
我的目的是使用该插件实现柱状图,hql语句如下:
def hql ="select p.sellTime,sum(p.pureProfits) from Profit p where p.sellTime >= current_date()-7 and p.sellTime <= current_date() group by p.sellTime"
然后得到resultList:def resultList = Profit.executeQuery(hql)
我要在action中将resultList直接传到页面上:[profitChartList: resultList]
这样的做法导致,页面读取不到数据。
因为<gui:columnChart>标签中data属性存放的是一个二维数组。我们需要将resultList的结果改造成二维数组。做法如下:
def dataList = []
resultList.each { s->
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd")
def dateStr = sdf.format(s[0])
def bar = ['date': dateStr, 'pureProfit':s[1]]
dataList << bar
}
这里有必要贴出领域模型Profit类的代码:
class Profit {
BigDecimal pureProfits //每次卖出商品的纯利润
Date sellTime
}
我们看到sellTime是Date型的,但是在<gui:columnChart>标签中显示不出Date型的值,因此我把它转成String类型存放到数组中。
至此,该action已经完成,完整代码如下:
def weekColumnChar ={
def hql ="select p.sellTime,sum(p.pureProfits) from Profit p where p.sellTime >= current_date()-7 and p.sellTime <= current_date() group by p.sellTime"
def resultList = Profit.executeQuery(hql)
def dataList = []
resultList.each { s->
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd")
def dateStr = sdf.format(s[0])
def bar = ['date':dateStr, 'pureProfit':s[1]]
dataList << bar
}
[profitChartList: dataList]
}
前台gsp页面如下:
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="layout" content="main" />
<title>最近七天利润柱状图</title>
<gui:resources components="['chart']" mode='debug'/>
</head>
<body class='yui-skin-sam'>
<div class="nav">
<span class="menuButton"><g:link class="home" controller="management" action="main">返回主菜单</g:link></span>
</div>
<div class="body">
<h1>最近七天利润柱状图</h1>
<div id='columnChart' style="width:600px; height: 300px"></div>
<gui:columnChart
id='myColChart'
renderTo="columnChart"
data="${profitChartList}"
seriesDefs="[
[
pureProfit:'The pure profit',
style:[
image: 'images/tube.png',
mode: 'no-repeat',
color: 0xc2d81e,
size: 40
]
]
]"
style="[
border: [color: 0x96acb4, size: 12],
font: [name: 'Arial Black', size: 14, color: 0x586b71],
dataTip:
[
border: [color: 0x2e434d, size: 2],
font: [name: 'Arial Black', size: 13, color: 0x586b71]
],
xAxis:
[
color: 0x2e434d
],
yAxis:
[
color: 0x2e434d,
majorTicks: [color: 0x2e434d, length: 4],
minorTicks: [color: 0x2e434d, length: 2],
majorGridLines: [size: 0]
]
]"
/>
</div>
</body>
</html>
效果图如下:
实现bar状图也是同样的道理,我实现的效果图如下:
- 大小: 29.5 KB
- 大小: 25.9 KB
分享到:
相关推荐
2. **View**:Grails使用GSP(Groovy Server Pages)作为视图,类似于JSP,但更灵活,允许在页面中直接嵌入Groovy代码,实现动态内容的生成。 3. **Controller**:控制器负责处理用户请求,管理业务逻辑,接收表单...
在Grails这个基于Groovy的敏捷开发框架中,实现分页功能对于任何Web应用程序都是至关重要的,特别是当处理大量数据时。Grails提供了一些内置的支持,但如果你需要在自定义的控制器和视图中实现分页,那么就需要遵循...
总的来说,"Grails下拉框联动最优实现"涉及到的技术点包括Groovy、Grails框架、AJAX、JavaScript、JSON、DOM操作以及前端UI设计原则。通过熟练掌握这些技术,我们可以创建出高效、响应式的用户界面,提升应用的用户...
总的来说,Grails Shiro UI 插件是Grails开发者实现应用安全的重要工具,它结合了Apache Shiro的强大功能和Grails的便利性,为开发安全、易管理的应用提供了强大支持。通过深入了解和熟练使用这个插件,开发者能够更...
- **创建应用**:使用`grails create-app Contact`命令可快速生成名为“Contact”的应用框架,该命令自动生成了标准的项目目录结构,包括但不限于`grails-app`下的`conf`、`controller`、`domain`、`i18n`、`...
使用Grails进行开发时,开发者可以通过定义清晰的领域类来实现业务逻辑,从而简化应用程序的复杂度。这种方式使得开发者能够更加专注于业务逻辑本身,而不是被底层的技术细节所困扰。通过领域类,可以直观地看到模型...
- 由于Grails项目涉及GSP(Groovy Server Pages)文件,推荐使用包含JSP编辑器的Eclipse JEE版本。如果你对JSP语法熟悉且内存有限,也可选择Classic版本。 - 安装Eclipse 3.4.0 JEE版本或其他支持JSP编辑的最新...
标题中的“grails使用freemarker.rar”表明这是一个关于如何在Grails框架中应用FreeMarker模板引擎的资源包。FreeMarker是一个开源的、基于Java的模板引擎,它用于生成动态HTML或其他格式的文本,比如XML、PDF等。...
在深入探讨如何在Eclipse环境中使用Grails类创建工具之前,我们先简要回顾一下Grails框架及其核心特性。Grails是一款基于Groovy语言的高性能Web应用开发框架,它遵循约定优于配置的原则,极大地简化了Web应用的开发...
2. **视图(View)**: 视图负责展示数据,通常使用GSP(Grails Server Pages)技术,这是一种结合了HTML和Groovy的模板语言,可以嵌入Groovy表达式和控制结构,实现动态内容的生成。 3. **控制器(Controller)**: ...
易于使用的基于Hibernate的对象-关系映射(ORM)层称为Groovy Server Pages (GSP)的表现层技术基于Spring MVC的控制器层构建于Gant 上的命令行脚本运行环境内置Jetty服务器,不用重新启动服务器就可以进行重新加载利用...
这份用户手册将帮助你深入理解和高效使用Grails。 一、Grails基础 Grails的核心理念是“约定优于配置”,这意味着它有一套默认的规则和结构,减少了开发者在项目初始化阶段的工作量。例如,项目文件结构、数据库...
在IT行业中,开发高效、用户友好的Web应用是一项挑战,而SmartGWT和Grails框架的结合使用可以简化这一过程。这两个技术都是为了提高开发效率和产品质量,它们各自有着独特的优点,并且可以协同工作,为开发者提供...
- **实战技巧**:包括 GORM (Groovy Object Relational Mapping) 的使用、如何在 Grails 中实现 Ajax 功能、处理遗留数据库的方法、利用遗留框架以及如何在 Grails 中使用 WebFlow。 - **高效编程系列**:涵盖使用 ...
Grails 使用Gradle作为构建工具,提供自动化构建、依赖管理等功能。构建的WAR文件可部署在任何支持Servlet的容器上,如Tomcat或Jetty。 8. **单元测试与集成测试** Grails 提供了内置的测试框架,支持单元测试、...
标题"grails ajax"表明我们将探讨如何在Grails应用中有效地使用Ajax技术。Ajax允许后台与服务器进行异步数据交换,而无需重新加载整个网页。这在动态数据展示、表单提交、实时更新等场景中特别有用。 在Grails中,...
在本教程中,我们将探讨如何使用GORM(Grails Object-Relational Mapping)构建Spring Boot应用程序。GORM是Grails框架的核心部分,它为开发者提供了简单、强大的数据持久化功能,支持Hibernate和MongoDB等数据库。...
从给定的文件信息来看,主要关注点在于Grails框架的初学者使用说明。Grails是一个基于Groovy语言的开源Web应用开发框架,它利用了Java平台的优势,并结合了动态语言的灵活性,使得Web开发变得更为高效、简洁。下面将...
《Grails权威指南》是一本全面深入探讨Grails框架的专著,旨在帮助读者掌握这一强大的Web开发工具。Grails是一种基于Groovy语言的开源框架,它为构建现代、高效的应用程序提供了简洁高效的解决方案。本指南针对不同...