控制器代码
def saveSurvey(){
println params
def person = Person.findByUserID(params?.userID)
def progress = Progress.get(params?.proid)
def activitylist=Activity.findAllByProgress(progress)
def questions=Questions.findAllByActivity(activitylist)
params.each {key,val ->print val
if(isNumeric(key))
{
def k=key
def a=val
def s=new Survey(question:k,person:person,answer:a,reason:"")
s.save()
}
}
redirect(controller:"home",action:"courseware",person:person,progress:progress,params:params)
}
//判断是否数字,现在不符合grails语法,等会改
public static boolean isNumeric(String str){
for (int i = str.length();--i>=0;){
if (!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
}
菜鸟上路,代码可能过长。。。
介绍一下流程,页面问卷中,用户已经登入,println params可以获得有所数据,包括,用户id,控制器,context,action,activity,和用户所填写的问卷答案。
注意:得到的都是以键值对方式的才参数
通过用户id,使用findAll函数获得用户
通过proid,使用get方法获得progress
通过progress得到活动Activity,方法同上
通过。。。得到question
迭代params可以得到所以参数的,值,和健
注意:question的健都是数字
所以通过一个对key的是否数字判断
收集得到 答案 的健与值
创建survey对象,传入值保存
最好提交跳转到当前,问卷页面
最好我想说的是,时间不够了,来不及上次view和domain了,不好意思。
分享到:
相关推荐
在Grails中,数据模型通常是Groovy类,它们使用ORM(对象关系映射)来与数据库交互。例如,我们可以创建一个`LoginUser`类,代表用户登录信息: ```groovy import org.grails.datastore.mapping.mongo.MongoEntity ...
例如,有用于认证、缓存、邮件发送等的插件,可以快速集成到项目中。 **Grails Command Line Interface (CLI)** Grails 提供了一个强大的命令行工具,用于初始化项目、创建域类、生成控制器、运行测试等。这大大...
Grails遵循一套默认的规约,比如数据库连接、目录结构等,这减少了大量手动配置的需求。然而,当需要自定义时,可以通过`Config.groovy`配置文件进行修改。 5. **运行与测试** - **运行Grails应用**:使用`grails...
Grails在IT行业中尤其受到重视,因为它能够帮助开发者快速搭建并部署基于MVC模式的应用程序。 在入门Grails之前,首先需要了解如何下载并安装这个框架。Grails官方提供了各个版本的下载链接,通常包括zip压缩包和可...
标题中的“grails3 CAS链接接数据库”表明我们要讨论的是如何在Grails 3框架下集成CAS(Central Authentication Service)并实现与数据库的连接。Grails是一个基于Groovy语言的开源Web应用框架,而CAS是一种广泛使用...
首先,我们需要理解Grails中的数据源配置。默认情况下,Grails使用一个名为`dataSource`的主数据源进行连接。然而,为了支持多数据库环境,开发者可以自定义额外的数据源,并在应用程序中按需使用。这在处理分布式...
在Grails中,领域模型是应用程序的核心,它代表了业务数据和逻辑。通过定义Groovy类并使用Grails的GORM(Grails Object Relational Mapping)来与数据库交互,可以轻松实现数据持久化。 4. **控制器(Controllers...
3. **领域驱动设计(Domain-Driven Design, DDD)**:Grails的域类直接映射到数据库表,文档会解释如何定义领域类、关联关系,以及Lifecycle方法,如`beforeInsert`、`beforeUpdate`等。 4. **服务层**:Grails的...
- 可以部署到任何支持Servlet 2.5规范的容器中,如Tomcat、Jetty等。 **所支持的Java EE容器** - 支持Tomcat、Jetty等多种流行的Java EE容器。 - 通过更改`BuildConfig.groovy`文件中的`targetContainer`参数来指定...
然后将文件保存到指定目录下,通常会使用`transferTo()`方法来完成文件的物理传输。 5. **返回文件路径**:最后,返回文件在服务器上的相对路径,以便在前端展示或后续处理中使用。 #### GSP页面实现 - **上传按钮...
在Grails中,我们可以使用`params.upload`来访问上传的文件,然后将其保存到指定的目录。 ```groovy def uploadImage = { def file = request.getFile('upload') if (file != null && !file.empty) { def ...
1. **模型(Model)**: 在Grails中,模型通常由Domain Classes表示,它们是持久化的实体,与数据库表对应。Domain Classes使用Groovy的元编程特性,如属性验证和动态方法,提供数据验证和业务逻辑。 2. **视图...
FCKEditor是一款著名的在线文本编辑器,grails-fckeditor-0.9.5插件则是将其集成到Grails应用中的解决方案。以下是关键点: 1. 安装与配置:在Grails项目中添加插件依赖,然后通过配置文件调整编辑器的参数,如默认...
- **GORM(Grails Object Relational Mapping)**: 内置的ORM框架,允许开发者通过领域类直接操作数据库,支持各种数据库系统,如MySQL、Oracle和PostgreSQL。 - **GRAILS插件系统**: 允许开发者扩展框架功能,提供...
此外,了解 Grails 的领域类(Domain Class)是如何映射到数据库的。 3. **GORM 数据库访问**:Grails 的 GORM(Grailed Object Relational Mapping)提供了一个简单易用的 ORM 解决方案,用于与数据库交互。通过...
- GORM 支持领域驱动设计(Domain-Driven Design),领域模型可以直接映射到数据库表,通过注解或配置文件定义关系。 4. **GRAILS CLI(命令行工具)** - Grails 提供了一套强大的命令行工具,用于快速生成应用...
4. **Grails插件**:Grails生态系统中的插件极大地扩展了框架的功能,如Spring Security用于安全控制,GSP(Grails Server Pages)用于视图渲染,以及CouchDB或MongoDB插件实现NoSQL数据库的支持。 5. **...
Grails1.1最新 中文 文档 当今的Java Web开发技术显得过于复杂,相对于它本身的需要来说。现在主流的Java Web框架也是异常复杂,而且没有很好的遵循 Don't Repeat Yourself (DRY) 法则。 因此我们要以一种新的思维...