grails框架刚用起来,感觉听蹩脚的!处处碰壁,但是用了一段时间,习惯啦,废话少说,步入正题!
grails没用明显DAO层,我们能看到的对对象的增删查改操作,实际上不是groovy语言对象的特有操作,而是在应用grails之后,框架利用AOP功能自动给对象添加的
!所以在你没有启动grails程序时,你直接掉对象的数据库操作是错误的!但是我们需要批量插入数据怎么办,一个一个写吗?不用!
可以自定义一个Controller,启动后操作:
class TestDataController {
def create={
try{
createData();
println("创建成功!!!!");
}catch (Exception e){
e.printStackTrace();
}
render("测试数据插入——————————————————————————————");
}
public static void createData(){
println "****************";
for (int i = 0; i < 50; i++) {
User user = new User();
user.name = "user" + i;
user.password="password"+i;
user.age = i;
user.birth = new Date();
user.sex = true;
List<Book> books = new ArrayList<Book>();
for (int j = 0; j < 100; j++) {
Book tmp = new Book();
tmp.name = "book" + j + ":" + i;
tmp.price = j * 100.32;
books.add(tmp);
if(j == 50)
println "-----------"+tmp;
}
user.books = books;
user.save(flush:true);
}
}
}
这是我的TestDataController.groovy文件,就是插入测试数据的(注意数据插入是所有属性默认是不允许为空的)!
但是怎么能通过浏览器调用这个Controller呢?这时就要配置UrlMappings.groovy文件了
class UrlMappings {
static mappings = {
"/testData" {
//这个与Controller中的TestDataController的前半部分对应,切忌这是约定,必须这样写
controller: "testData";
//对应TestDataController中的create操作
action: "create";
}
}
}
接下来就是访问啦:http://localhost:8080/项目名/testData
select标签和迭代标签的应用:
<g:each in="${list}">
<ul>
<li>姓名: ${it.name}</li>
<li>性别: <g:formatBoolean boolean="${it.sex}" true="男" false="女"/></li>
<li>年龄: ${it.age}</li>
<li>生日:<g:formatDate date="${it.birth}" format="yyyy年MM月dd日"/></li>
<li>密码: ${it.password}</li>
</ul>
</g:each>
<hr/>
<g:select from="${list}" id="userID" name="userID" optionKey="id" optionValue="name" value="2"></g:select>
一看便知${}引用当前上下文中变量。这个与JSTL中的用法相似;
<g:each in="${要迭代的集合}">
${it},代指每次循环的变量
<g:formatBoolean>和<g:formatDate>我就不再说了,很简单格式化文本的,
<g:select>上面输出对应的html文本代码是:
<select name="userID" id="userID" >
<option value="1" >test1</option>
</select>
from:那个集合
id和name是html代码中的属性
optionKey:每个option的value
optionValue:每个option中要显示的文本值
value:默认哪个optionKey被选中?
文件上传:
class FileUploadController {
def upload={
//myFile对应表单中input type=“file”的name值
def f = request.getFile("myFile");
//判断是否等到文件
if(!f.empty){
//获得原始的文件名
String fileName=f.getOriginalFilename();
//获得文件的大小(默认单位是B)和类型
println(new Date().toString()+"--name:"+fileName+";size:"+(f.size/1024)+"kb;type:"+f.contentType);
//文件要保存在哪个目录
String filePath="web-app/upload/";
//开始写入,比Java简单多了吧!
f.transferTo(new File(filePath+fileName));
//render在这里与response.getWriter().println很相似
render("上传成功!");
}else {
render("上传失败!");
}
}
}
gsp文件内容
<g:uploadForm action="upload" controller="fileUpload" >
文件:<input type="file" name="myFile" id="myFile"/>
<g:submitButton name="submit" value="开始上传"/>
</g:uploadForm>
对应的HTML代码:
<form action="/grails1/fileUpload/upload" method="post" enctype="multipart/form-data" >
文件:<input type="file" name="myFile" id="myFile"/>
<input type="submit" name="submit" value="开始上传" id="submit" />
</form>
这个我就不用解释了,太简单了!
分享到:
相关推荐
在本文中,我们将深入探讨如何在Grails框架中结合uploadify插件实现文件上传功能。Grails是一款基于Groovy语言的、高效的Web应用开发框架,它简化了Java平台上的开发流程。uploadify则是一个JavaScript库,它允许...
Grails标签 主要介绍了grails的标签的一个帮助文档
在Grails框架中,文件的上传与下载是常见的功能需求,尤其在开发涉及大量文档、图片或媒体文件处理的应用程序时。以下是对Grails中上传和下载操作的深入解析,包括其实现机制、代码示例及注意事项。 ### 文件上传 ...
Grails入门指南书籍和源码----下载不扣分,回帖加1分,欢迎下载,童叟无欺 getting started with grails chinese Grails入门指南书籍和源码----下载不扣分,回帖加1分,欢迎下载,童叟无欺 getting started with ...
Grails 支持多语言环境,通过i18n资源文件,轻松实现应用的国际化和本地化。 11. **模板引擎与标签库** GSP(Groovy Server Pages)支持自定义标签库,使得视图层逻辑更加清晰,同时提供了内置的标签,如`g:form`...
8.2 grails内置标签 8.2.1 使用标签来设置变量 8.2.2 逻辑标签 8.2.3 迭代标签 8.2.4 过滤器和迭代 8.3 grails动态标签 8.3.1 链接标签 8.3.2 创建表单和字段 8.3.3 ...
Grails使用Gradle作为构建工具,提供了`grails war` 命令生成可部署的WAR文件,方便在各种Java应用服务器上部署。 九、测试 Grails内置了测试框架,支持单元测试、集成测试和功能测试。通过`test-app` 命令,可以...
- 在Eclipse的classpath variable中设置`GRAILS_HOME`变量,指向Grails的安装目录,避免在创建或导入项目时手动添加库文件。 - 在`Windows -> Preferences -> Groovy`中,勾选"Disable Groovy Compiler Generating...
**Grails 框架详解** Grails 是一个基于 Groovy 语言的开源Web应用程序框架,它构建在Java平台之上,旨在简化开发过程并提高生产力。Grails 的设计深受Ruby on Rails的影响,提供了MVC(模型-视图-控制器)架构模式...
Eclipse 插件 Grails(Groovy)是一个强大的开发工具,它使得在Eclipse环境中进行Groovy和Grails应用的开发变得更为便捷。Groovy是一种动态、面向对象的编程语言,而Grails则是一个基于Groovy的开源Web应用框架,...
例如,`<g:each>`标签用于遍历集合,`<g:link>`用于创建链接,这些都是Grails特有的标签库,极大地简化了视图开发。 "groovy.acp"和"groovy.stx"可能是Groovy源代码或模板文件。在Grails项目中,Groovy源代码通常...
#### 三、Grails 的配置文件位置 在 Grails 0.6+ 版本中,各种配置文件的位置如下: - **数据源配置**:位于 `grails-app/conf/DataSource.groovy` 文件中。 - **日志配置**:位于 `grails-app/conf/Config.groovy...
6. **使用eclipse运行grails项目.xlsx**:这个文件可能是项目配置或者步骤指南,包含了运行Grails项目的具体步骤和注意事项。打开查看,以便更好地理解项目的运行流程。 7. **GroovyEclipse.zip**:这个文件可能...
《Grails权威指南》是一本全面深入探讨Grails框架的专著,旨在帮助读者掌握这一强大的Web开发工具。Grails是一种基于Groovy语言的开源框架,它为构建现代、高效的应用程序提供了简洁高效的解决方案。本指南针对不同...
3. 扩展性:FCKEditor插件可以与其他Grails插件(如文件上传插件)配合使用,提供更强大的功能,如图片管理和多媒体资源管理。 4. 版本兼容:虽然grails-fckeditor-0.9.5是较旧的版本,但理解其工作原理有助于我们...
Grails框架的配置通常通过内置选项和外部文件来完成。例如,数据源的配置既可以在环境配置中直接设置,也可以通过JNDI数据源来管理。此外,还可以配置自动数据库移植功能,它会在应用启动时根据域类(domain class)...
部署时,通常会将Grails应用打包成WAR文件,部署在Tomcat、Jetty等Servlet容器上。 8. **最佳实践** 在实际开发中,了解并遵循Grails的最佳实践至关重要,例如,合理划分领域模型、充分利用GSP标签库、使用Service...
在Grails中,我们可以使用内置的GSP(Grails Server Pages)标签库来简化Ajax调用。例如,`remoteFunction`标签可以轻松创建Ajax请求,它接受各种参数,如URL、方法类型(GET或POST)、回调函数等。这样,开发者可以...