首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

G:在grails中使用两个组合框进行选择

在Grails中使用两个组合框进行选择,可以通过使用Grails的表单标签和动态加载数据来实现。

首先,需要在Grails的视图文件中创建两个组合框,可以使用Grails的表单标签g:select来创建。例如,创建一个名为category的组合框用于选择分类,和一个名为item的组合框用于选择具体的项目:

代码语言:html
复制
<g:select name="category" from="${categories}" optionKey="id" optionValue="name" noSelection="['':'- Select Category -']" />
<g:select name="item" from="${items}" optionKey="id" optionValue="name" noSelection="['':'- Select Item -']" />

上述代码中,from属性用于指定组合框的选项,${categories}${items}是从控制器传递到视图的模型数据,分别表示分类和项目的选项列表。optionKeyoptionValue属性用于指定选项的键和值,这里假设分类和项目都有idname属性。

接下来,需要使用JavaScript来实现动态加载数据。可以使用Grails的远程函数remoteFunction来发送Ajax请求获取项目的选项列表。在视图文件中添加以下代码:

代码语言:javascript
复制
<script>
    $(document).ready(function() {
        $('#category').change(function() {
            var categoryId = $(this).val();
            if (categoryId) {
                ${remoteFunction(
                    controller: 'item',
                    action: 'getItemsByCategory',
                    params: '\'categoryId=\' + categoryId',
                    onSuccess: 'updateItems(data)'
                )}
            } else {
                $('#item').html('');
            }
        });
    });

    function updateItems(data) {
        $('#item').html(data);
    }
</script>

上述代码中,$('#category').change函数用于监听分类组合框的变化事件。当分类选择发生变化时,获取选中的分类ID,并使用remoteFunction发送Ajax请求到item控制器的getItemsByCategory动作。请求参数params中传递了选中的分类ID。请求成功后,调用updateItems函数更新项目组合框的选项。

item控制器中,需要定义getItemsByCategory动作来处理Ajax请求,并返回项目的选项列表。例如:

代码语言:groovy
复制
class ItemController {
    def getItemsByCategory() {
        def categoryId = params.categoryId
        def items = Item.findAllByCategory(categoryId)
        render(template: 'itemOptions', model: [items: items])
    }
}

上述代码中,根据传递的分类ID查询对应的项目列表,并使用render方法渲染名为itemOptions的模板,将项目列表传递给模板。

最后,在视图文件中创建名为_itemOptions.gsp的模板文件,用于渲染项目组合框的选项。例如:

代码语言:html
复制
<% items.each { item -> %>
    <option value="${item.id}">${item.name}</option>
<% } %>

上述代码中,使用Groovy的循环语句遍历项目列表,创建项目选项的HTML代码。

通过以上步骤,就可以在Grails中使用两个组合框进行选择。当选择分类时,会动态加载对应的项目选项。这种方式可以提供更好的用户体验和交互性。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel实战技巧67:组合添加不重复值(使用ADO技巧)

很多情况下,我们需要使用工作表的数据来填充组合,但往往这些数据中含有许多重复值。如何去除重复值并得到唯一值,这是一个永恒的话题,大家也会用到各式各样的方法得到结果。...本文讲解一种技巧,使用Recordset(记录集)来获取唯一值并将其填充到组合。 示例数据如下图1所示。工作表中有一个组合,需要包含列A的省份列表,但是列A中有很多重复的省份数据。 ?...图1 这里可以使用简单的记录集快速提取不同的省份名并将其装载到组合。...单击功能区“开发工具”选项卡“插入”按钮下ActiveX控件的“组合”,工作表插入一个组合,可以看到Excel将其自动命名为“ComboBox1”,如下图2所示。 ?...可以在任何事件或过程调用它们,例如工作簿打开事件、查询刷新事件或者按下按钮后。 运行或调用过程后,工作表单击组合右侧下拉按钮,结果如下图3所示。 ?

5.6K10
  • Groovy on Grails 交流活动

    Grails 需要它特有的运行环境。” 不!你只需要使用grails war” 命令将应用打包成一个 WAR 文件,并将其部署到你最喜欢的应用程序容器即可。...在这一切过程,你的 Java 技能却永不过时,因为 Groovy 正是建立在对 Java 平台的体验与熟知的基础上的。你可以选择这两套语言工具的任一款,也可以将它们完美地契合起来。...,正慢慢回味这整个过程语言特性的使用呢。...我将 “Grails 现状” 作为周四晚上的主题,从 Grails1.0 发布以来不断发展和技术的双重角度进行了分析。...这体现了一个大型 Grails 商业应用(至少我们 G2One 公司可以谈论这个事情了,呵呵)的成功发布,此时已经有每月约 186 百万页的访问量了。

    1.7K20

    作为一名开发人员,来谈谈微服务架构应用的优势

    你可以自由地使用各种流行的技术 ? 与使用大型、单体架构应用程序相关的一个大问题是,您被自己的技术所束缚。这可以分两个层面来说,第一,更老的或更有说服力的框架更有可能被选择。...这意味着你不太可能使用太前沿的技术,而这正是许多开发者所看重的。第二是一旦选择了某种技术路线,通常需要付出很大的努力(通常是太大了)才能做出重大的改变。...我很高兴与microservices一起使用基于Spring和Grails的微服务,使用各自框架的最新版本。可以自由组合使用的技术栈,这是很令人激动的事。 职责分离 ?...重构、重新运行测试和启动微服务通常比使用单体应用程序进行类似的工作要快得多,这也很有帮助。...这种分离的另一个好处是,一个服务中进行的代码更改不会影响其他服务中正在发生的事情。这大大减少了意外错误的几率。

    55720

    Java 近期新闻:JDK 2 进入Rampdown阶段一、JDK 24专家组成立、Apache NetBeans 22发布

    该目录于 2024 年 3 月发布,提供了一组独立的 Java 函数,可以直接在用户应用程序中使用选择 5.0.0 版本是为了与 Stream Applications 项目中的函数保持一致。...同样,Spring Cloud Stream Applications 2024.0.0 发布,包含了依赖项升级和一些显著变更,例如: README.adoc 文件对示例应用程序表格布局进行了简化,...同样,Quarkus 3.8 系列的第四个维护版本 3.8.5(跳过了 3.8.0)发布,包含了文档改进和依赖项升级,并解决了一些重要问题,例如: Azure Functions HTTP 扩展中使用错误的字符集会导致...HTTP 请求正文损坏; OIDC 客户端使用 @AccessToken 注解时会出现 Jakarta CDI AmbiguousResolutionException;MultiPartParserDefinition...强调贡献方法,贡献可能以各种形式出现,例如有些组织可能选择贡献工程资源,有些可能选择为核心开发团队提供财务支持。

    14610

    简洁、高效、灵活:探索 Spring 同级别的编程框架

    Grails不仅仅是一个Web框架,它由各种子项目组成。下表总结了生态系统的其他一些关键项目。...Micronaut由Grails框架的创建者开发,并从多年来使用Spring、Spring Boot和Grails构建从单体到微服务的实际应用程序汲取灵感。...Vert.x Vert.x 是一个由Eclipse基金会管理的工具集,用于JVM上构建响应式应用程序。它是一个工具集,而不是一个框架,所以它可以组合和嵌入到其他框架。...,Kubernetes等容器协调平台中提供近乎即时的扩展和高密度的内存利用。 云原生: Kubernetes 等环境采用 12 因素架构。...易于部署:Dropwizard框架采用可执行Jar包的形式进行打包和部署,可以轻松地在任何环境运行,例如本地开发机器、云平台或Docker容器等。

    77150

    Eclipse 配置 Grails 工程

    5、工程属性的 Java Build Path 选择 Libraries,选择 Add Variable,添加变量 GRAILS_HOME,并将其中的所有文件夹内的所有 jar 文件全部引入工程 (...可以使用 shift 键批量选中): 6、工程属性的 Java Compiler 的 Building ,选中 Enable project specific settings,最下面的 Filtered...Resource ,添加*.groovy 类型,类型之间使用逗号分隔,这样就能阻止编译器将 groovy 文件拷贝到 web-app/classes 文件夹: 7、 Window 的 Preference...,如下配置,这样就可以 Eclipse 启用 Grails 控制命令了: 10、选择 Run、Open Run Dialog,如下配置,将 Grails 的项目作为 Java 应用程序的方式运行:...以上就是整个 Eclipse 配置 Grails 项目的过程。

    1.1K40

    在你的浏览器构建和共享开发人员环境

    这使得使用Codenvy与桌面IDE非常方便。一般工作流程可能如下所示: 拉一个项目>本地IDE中进行更改>将更改推回到云>触发远程编译或运行 将你的桌面与云结合使用,而不是代替你的桌面。...任何语言 好吧,几乎任何可以Linux上安装和运行的东西,都可以Codenvy安装和运行。Docker给了我们这个能力。...Codenvy提供了20多个预先准备好的,可以使用的环境(此外,所有的基础镜像总是Docker缓存,所以你不需要等待基本镜像的拖动)。...运行菜单选项使得选择要加载的运行时系统变得可能。Codenvy构建Dockerfile与本地构建Dockerfile没有区别——都是相同的指令,相同的规则,相同的输出。...否则,你可以直接前往DockerHub,在那里找到一个合适的映像(花费一些时间选择最好的映像),并将其用作自定义配置的基础映像。幸运的是,有许多官方的映像是轻量级的,没有不必要的软件和工具。

    4.5K90

    目标检测涨点小Trick | 回顾Proposal-Based目标检测,启发小改NMS即可带来涨点

    每个组合 B_{j} 是表示由组 g_{j} 代表的目标的候选边界。 最后,作者进行一次回归步骤来细化组合。...在这个实验,作者训练了两个网络:一个采用作者的方法即基于交点的回归并基于交点的分组;另一个采用传统的边界回归,并采用类似的分组,但使用回归的Proposal。...为了阐明基于交点分组阶段目标检测的影响,作者对两个基线模型进行了消融研究:Faster R-CNN 和Mask R-CNN 。...最后,作者将这些交叠区域组合起来并对其进行细化,以形成最终的边界。 最确信Proposal选择: 在这个场景,作者对每个Proposal进行边界回归。...从这些分组,作者选择具有最高置信度的Proposal作为目标的代代表界,这个过程类似于基准方法。 结果和讨论。表5的结果揭示了与传统方法相比,使用作者的方法目标定位准确性方面有显著提高。

    51210

    您的浏览器构建和共享开发者环境

    一个孤立的容器搭载一个预配置环境的想法吸引了全球领先的技术公司和数百万用户。然而,上述方法仍然需要用户下载软件和镜像,以及管理桌面。而我们Codenvy则已经有更为先进的方式。...只需点击一个按钮,就能身处于一个预先配置的开发环境,而且IDE丰富的编辑工具和项目资源尽在指尖,是不是很不错呢?本地开发,但在云中构建和运行项目,又是怎样的一种体验呢?...一般工作流程可能如下所示: 拉取一个项目>本地IDE中进行更改>将更改推送回云端>触发远程构建或运行 使用云搭配您的桌面,而不是取代它。...用户可以构建自己的配置方式,或者如果有必要的话,使用多个Dockerfile。运行菜单选项可以选择需要加载的运行时环境。...否则,您可以直接前往DockerHub,在那里找到一个好的镜像(花费一些时间选择最好的镜像),并将其用作您自定义配置的基本镜像。幸运的是,有许多官方的图像是轻量级的,没有不必要的软件和工具。

    1.8K70

    我是如何成为一个JavaWeb开发者的

    但是技术也是不断变化发展的。你会冒着学习的东西很快就会过时的风险吗?   客户端技术   我建议新手开发人员可以从基础的学起;HTML,CSS和Java。这些技术是web开发的核心。...与HTML定义的是网页的内容不同,CSS定义的是当在浏览器呈现时网页的外观。例如,你可以对桌面Web应用程序使用一套CSS规则,对移动应用程序使用另一套不同的CSS规则。...你要从数据库得到内容,以显示在网页上,或从用户那里接收内容存储到数据库。所以,Javaweb开发人员需要知道如何使用JPA。   ...Grails   Grails是建立Spring之上的快速应用程序开发框架。它不但拥有Spring的所有内容,还借鉴了Groovy的生产力优势。...JBossSeam是一个很好的选择,具有良好的支持而被企业所接受。不过,JBossSeam经常因为开发和性能方面比Spring慢而饱受诟病。但是有的批评对于JBossSeam过于苛刻了。

    96010

    创业公司技术选型原则

    简单的说,技术选型就是技术决策,只要你团队稍微有点地位,独立承担某项任务,就会面临选择,需要做出相应的决策。当然,这种细粒度地决策级别不是我要讨论的重点。...技术路线,是进行技术选型时必须要面对的问题,尽可能地选择符合公司技术路线的技术或工具,这样有助于工作的快速推进。...反过来就不一定了,比如我公司一直使用Grails国内的普及程度就远低于所谓的SSH或SSM。但其学习曲线一点都不高,而且开发效率数倍于前者。...前者的好处在上面已有说明,至于后者,则说明项目与时俱进,对于新出现的使用场景大概率有较好的支持。 即使有很好的外部支持,也不意味着就应该放弃内部支持能力的建立。...普及程度或学习曲线,Grails国内的知名度远逊于其在国外的知名度要拜国内的培训班所赐。

    2.1K20

    我是如何成为一个JavaWeb开发者的

    但是技术也是不断变化发展的。你会冒着学习的东西很快就会过时的风险吗?   客户端技术   我建议新手开发人员可以从基础的学起;HTML,CSS和Java。这些技术是web开发的核心。...与HTML定义的是网页的内容不同,CSS定义的是当在浏览器呈现时网页的外观。例如,你可以对桌面Web应用程序使用一套CSS规则,对移动应用程序使用另一套不同的CSS规则。...你要从数据库得到内容,以显示在网页上,或从用户那里接收内容存储到数据库。所以,Javaweb开发人员需要知道如何使用JPA。   ...Grails   Grails是建立Spring之上的快速应用程序开发框架。它不但拥有Spring的所有内容,还借鉴了Groovy的生产力优势。...JBossSeam是一个很好的选择,具有良好的支持而被企业所接受。不过,JBossSeam经常因为开发和性能方面比Spring慢而饱受诟病。但是有的批评对于JBossSeam过于苛刻了。

    88210

    Excel实战技巧111:自动更新的级联组合

    选择组合,单击右键,选择“设置控件格式”命令。“设置控件格式”的“控制”选项卡(如下图4所示),有两个重要的属性: 数据源区域:包含要在下拉列表显示的项目的单元格。...单元格链接:用于保存用户从列表中选择的单元格。因为组合位于单元格上方,所以我们需要将用户的选择存储传统的工作表单元格。 图4 对于本示例,设置组合的数据源和单元格链接如下图5所示。...图5 从图5可以看到,组合选择与单元格K4链接,当我们选择组合的下拉列表项时,将会在该单元格中放置所选项列表的位置值。 下面,我们来创建级联的组合。...由于组合不接受公式作为引用,因此必须将公式存储名称管理器,然后组合引用名称。 我们使用了中间数据,因此使用第一种方法,直接引用单元格来填充第二个组合。...我们想根据用户从第一个组合中所做的选择创建一个动态的“App内容”列表,在此,将使用存储第一个组合的单元格链接(K4)的值。 图7 使用INDEX函数创建相关App的列表。

    8.4K20

    比 MyBatis 快了 100 倍

    使用 Mybatis 或 Hibernate 写 100 行代码是不是还打不住?而使用 Bean Searcher,只需 一行代码 便可实现上述要求!!!...Bean Searcher 可以极大节省后端的复杂列表检索接口的开发时间 集成简单 可以和任意 Java Web 框架集成,如:SpringBoot、Grails、Jfinal 等 扩展性强 面向接口设计...,用户可自定义扩展 Bean Searcher 的任何组件 支持 注解缺省 约定优于配置,可省略注解,可复用原有域类,同时支持自定义注解 支持 多数据源 分库分表?...onlySelect=username,age 只检索 username 与 age 两个字段: { "dataList": [ { "username": "Jack", "age": 25 }, ....bean-searcher GitHub:https://github.com/ejlchina/bean-searcher End 大彬的知识星球已经运营一年啦,积累了很多优质内容,包括职业规划、技术问题、面试问题、岗位选择

    21610

    1. 了解Groovy

    而我们比较常见的就是当脚本语言进行使用,毕竟它的运行效率是没有java原生的效率高的。 而我,想学习和了解,也是将它当做脚本语言来进行使用了。...本节,我们将重点介绍几个最知名和最成功的项目,这些项目以Groovy为核心。 GrailsGrails是一个用于JVM的开源、全栈、web应用程序框架。...Griffon:Griffon是一个用于JVM开发桌面应用程序的应用程序框架,Groovy是首选语言。...受Grails的启发,Griffon遵循“配置之上的约定”范式,搭配直观的MVC架构和命令行界面。 Geb:Geb是一个功能强大的浏览器功能测试框架,可以让您快速轻松地Groovy编写功能测试。...后记 后面将会基于Idea的Groovy插件,Android Studio展示自己的Groovy的学习成果。

    1.4K20

    使用 PowerToys Keyboard Manager 重新定义 Windows 1011 键盘上的键

    ⊞ Win+G 通常会打开 Xbox Game Bar(即使重新分配时)。 可以 Windows 设置禁用 Game Bar。...将键重映射到文本 若要将键重映射到任意 Unicode 文本,请在“发送内容”列首先在组合选择“文本”,然后文本填写所需文本。 例如,若按 H 键,就会生成 Hello!...带弦的快捷方式 可以使用一个或多个修饰符和两个非修饰符键创建快捷方式。 这些称为“弦”。 要创建弦,请选择编辑以打开对话,以使用键盘录制快捷方式。 打开后,打开允许弦开关。...将快捷方式重映射到文本 例如,若要将快捷键 Ctrl+G 替换为 Hello! 文本,则请在组合选择文本,然后输入“Hello!”:展开表 选择: 发送内容: Ctrl + G Hello!...使用下拉菜单。 选择选择后,将打开一个对话窗口;在此对话窗口中,可以使用键盘输入键或快捷方式。 对输出感到满意后,按住 Enter 以继续。 若要推出此对话,请按 Esc。

    15810

    比MyBatis快100倍,天生支持联表!

    点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 文章来源:https://c1n.cn/my8R6 目录 简介 开源协议 界面展示 功能概述 技术选型 源码地址 简介 对于 Java...| 集成简单 可以和任意 Java Web 框架集成,如:SpringBoot、Grails、Jfinal 等。...| 扩展性强 面向接口设计,用户可自定义扩展 Bean Searcher 的任何组件。 | 支持注解缺省 约定优于配置,可省略注解,可复用原有域类,同时支持自定义注解。...技术选型 框架目的:只一行代码实现多表联查分页搜索任意字段组合过滤任意字段排序多字段统计。 架构图如下: 为什么用?这绝不是一个重复的轮子。...onlySelect=username,age:只检索 username 与 age 两个字段。

    1.1K20
    领券