Grails删除方法

如何解决Grails删除方法

Grails删除方法似乎无效。 我想知道是否有什么问题。 我自己解决不了。 如果您能帮助我,我会很高兴。 我是日语不佳的日语。如果我用英语输入错误,对不起。 X(

我提到了教程站点。 https://koji-k.github.io/grails-tutorial/tutorials/todo-application/delete.html

您想做的事 我想使用delete方法删除具有指定ID的元素。

当前状态 可以保存,但不能删除。

开发环境 MacOS Mojave 智能 Grails版本:4.0.1 JVM版本:11.0.2

package hoge

class Hoge {
    String name
    String text
    static constraints = {
    }
}

控制器

    package hoge
    
    class HogeController {
    
        def index() {
            render(view: '/hoge/index',model: [hoges: Hoge.listOrderById()])
        }
    
        def save() {
            String text = params.text
            String name = params.name
            Hoge newHoge = new Hoge(name: name,text: text)
            // DB save
            if (newHoge.validate()) {
                newHoge.save()
                redirect(controller: "hoge",action: "index")
            } else {
                render(view: '/hoge/index',model: [errorHoge: newHoge,hoges: Hoge.listOrderById()])
            }
    
        }
        def delete() {
            Hoge hoge = Hoge.get(params.long("id"))
            if (hoge) {
                hoge.delete()
                flash.message = "deleted"

            } else {
                flash.error = "TodoId:${params.long("id")} is not found"
            }
        redirect(controller: "hoge",action: "index")
    }
}

查看

<!DOCTYPE html>
<html>
<head>
    <meta charaset="UTF-8">
    <title>create page</title>
</head>
<body>
    <g:if test="${flash.message}">
        <div style="background-color: #269abc">${flash.message}</div>
    </g:if>
    <g:if test="${flash.error}">
        <div style="background-color: #db7093">${flash.error}</div>
    </g:if>
    <g:renderErrors bean="${errorHoge}" as="list" field="hogeName"/>


    <p>Name and Text</p>
    <g:form controller="hoge" action="save">
        <g:textField name="name" placeholder="name"/>
        <g:textField name="text" placeholder="text"/>
        <g:submitButton name="Add">Add Todo</g:submitButton>
    </g:form>
    <ul>
    <g:each in="${hoges}" var="hoge">
        <li>${hoge.id} ${hoge.name} ${hoge.text}</li>
        <g:link controller="hoge" action="delete" params="['id':hoge.id]">
            Delete
        </g:link>
        <g:link controller="hoge" action="update" params="['id':hoge.id]">
            kousin
        </g:link>
    </g:each>
    </ul>
</body>

build.gradle

buildscript {
    repositories {
        maven { url "https://repo.grails.org/grails/core" }
    }
    dependencies {
        classpath "org.grails:grails-gradle-plugin:$grailsVersion"
        classpath "org.grails.plugins:hibernate5:7.0.0"
        classpath "gradle.plugin.com.github.erdi.webdriver-binaries:webdriver-binaries-gradle-plugin:2.0"
        classpath "com.bertramlabs.plugins:asset-pipeline-gradle:3.0.10"
    }
}

version "0.1"
group "hoge"

apply plugin:"eclipse"
apply plugin:"idea"
apply plugin:"war"
apply plugin:"org.grails.grails-web"
apply plugin:"com.github.erdi.webdriver-binaries"
apply plugin:"org.grails.grails-gsp"
apply plugin:"com.bertramlabs.asset-pipeline"

repositories {
    maven { url "https://repo.grails.org/grails/core" }
}

configurations {
    developmentOnly
    runtimeClasspath {
        extendsFrom developmentOnly
    }
}

dependencies {
    developmentOnly("org.springframework.boot:spring-boot-devtools")
    compile "org.springframework.boot:spring-boot-starter-logging"
    compile "org.springframework.boot:spring-boot-autoconfigure"
    compile "org.grails:grails-core"
    compile "org.springframework.boot:spring-boot-starter-actuator"
    compile "org.springframework.boot:spring-boot-starter-tomcat"
    compile "org.grails:grails-web-boot"
    compile "org.grails:grails-logging"
    compile "org.grails:grails-plugin-rest"
    compile "org.grails:grails-plugin-databinding"
    compile "org.grails:grails-plugin-i18n"
    compile "org.grails:grails-plugin-services"
    compile "org.grails:grails-plugin-url-mappings"
    compile "org.grails:grails-plugin-interceptors"
    compile "org.grails.plugins:cache"
    compile "org.grails.plugins:async"
    compile "org.grails.plugins:scaffolding"
    compile "org.grails.plugins:events"
    compile "org.grails.plugins:hibernate5"
    compile "org.hibernate:hibernate-core:5.4.0.Final"
    compile "org.grails.plugins:gsp"
    compileOnly "io.micronaut:micronaut-inject-groovy"
    console "org.grails:grails-console"
    profile "org.grails.profiles:web"
    runtime "org.glassfish.web:el-impl:2.1.2-b03"
    runtime "com.h2database:h2"
    runtime "org.apache.tomcat:tomcat-jdbc"
    runtime "javax.xml.bind:jaxb-api:2.3.0"
    runtime "com.bertramlabs.plugins:asset-pipeline-grails:3.0.10"
    testCompile "org.grails:grails-gorm-testing-support"
    testCompile "org.mockito:mockito-core"
    testCompile "org.grails:grails-web-testing-support"
    testCompile "org.grails.plugins:geb"
    testCompile "org.seleniumhq.selenium:selenium-remote-driver:3.14.0"
    testCompile "org.seleniumhq.selenium:selenium-api:3.14.0"
    testCompile "org.seleniumhq.selenium:selenium-support:3.14.0"
    testRuntime "org.seleniumhq.selenium:selenium-chrome-driver:3.14.0"
    testRuntime "org.seleniumhq.selenium:selenium-firefox-driver:3.14.0"
}

bootRun {
    jvmArgs(
        '-Dspring.output.ansi.enabled=always','-noverify','-XX:TieredStopAtLevel=1','-Xmx1024m')
    sourceResources sourceSets.main
    String springProfilesActive = 'spring.profiles.active'
    systemProperty springProfilesActive,System.getProperty(springProfilesActive)
}

webdriverBinaries {
    chromedriver '2.45.0'
    geckodriver '0.24.0'
}

tasks.withType(Test) {
    systemProperty "geb.env",System.getProperty('geb.env')
    systemProperty "geb.build.reportsDir",reporting.file("geb/integrationTest")
    systemProperty "webdriver.chrome.driver",System.getProperty('webdriver.chrome.driver')
    systemProperty "webdriver.gecko.driver",System.getProperty('webdriver.gecko.driver')
}


assets {
    minifyJs = true
    minifyCss = true
}

It remains even if I try to delete it

如果是todo.delete(刷新:true)

Error 500: Internal Server Error
URI: /hoge/delete/2
Class: javax.persistence.TransactionRequiredException
Message: null
Caused by: no transaction is in progress

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-