首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >grails形式的操作不起作用

grails形式的操作不起作用
EN

Stack Overflow用户
提问于 2018-04-16 06:49:30
回答 3查看 525关注 0票数 0

我正在尝试创建一个简单的帐户,当单击create按钮时,它应该执行"create“操作,但是我得到了一个错误:

HTTP状态404 -“/WEB/grails-app/view/user/create.gsp”未找到.

下面是我的index.gsp代码块

代码语言:javascript
运行
复制
<!-- CREATEFORM -->
<div id="id02" class="modal">
  <g:form class="modal-content animate" controller="users" action="create">
    <div class="imgcontainer">
      <span onclick="document.getElementById('id02').style.display='none'" class="close" title="Close Modal">&times;</span>
        <div class="container" style="text-align:center">
            <b><h style="font-family: Arial, Helvetica, sans-serif; font-size: 30px">CREATE AN ACCOUNT</h></b><br/>
      <input type="text" placeholder="Enter Username" name="uname" required/>

      <input type="password" placeholder="Enter Password" name="psw" required/>

      <input type="text" placeholder="First Name" name="firstName" required/>

      <input type="text" placeholder="Last Name" name="lastName" required/>

      <input type="text" placeholder="Age" name="age" required/>
      <br/>
      <input type="date" placeholder="Birth Date" name="birthdate" required/>
      <br/>
      <input type="text" placeholder="Student Number" name="studno" required/><br/>

      <label>
        <input type="checkbox" checked="checked" name="remember"> Remember me</input>
      </label>
      <br/>
      <button type="submit" style="width: 100px; margin-right:10px;" >Create</input>
      <button type="button" onclick="document.getElementById('id02').style.display='none'" class="cancelbtn">Cancel</button>

    </div>
    </div>
  </g:form>
</div>

这是我的usersController代码块。

代码语言:javascript
运行
复制
class usersController {    
    def index(){}
    def create()
    {
        new Users(userid:params.uname,password:params.psw).save()
        new UserInfo(studentno:params.studno,age:params.age,birth_date:params.birthdate,first_name:params.firstName,last_name:params.lastName,user_id:params.uname).save()
    }
}

这是一个错误

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-16 10:38:20

在Grails (非gsp)中,您需要向客户端呈现,否则它将执行该操作中的所有内容,但返回404GSP未找到响应,如果没有呈现/重定向语句,则它将该操作视为gsp,但它实际上不是gsp,因此它响应404。

您可以呈现一些数据,如list / JSON或简单字符串,如下所示。

代码语言:javascript
运行
复制
def create() {
 //your business logic is here
 render "operation performed successfully"

}
票数 0
EN

Stack Overflow用户

发布于 2018-04-16 09:57:52

HTTP Status 404 -“/WEB/grails-app/view/user/create.gsp”未找到。

因为您使用create保存数据,但是在保存数据之后,没有重定向选项或create.gsp可用。所以grails将首先查看是否有任何重定向选项可用,并尝试重定向create.gsp

检查下面的代码更改,这些更改将将user id保存到userInfo表并重定向到索引页

所以改变你的usersController

代码语言:javascript
运行
复制
class usersController {
    def index() {}

    def create() {
        def user = new Users(userid: params.uname, password: params.psw).save()
        def userInfo = new UserInfo(studentno: params.studno, age: params.age, birth_date: params.birthdate, first_name: params.firstName, last_name: params.lastName, user_id: user.id).save()
        if (user && userInfo) {
            flash.message = "User created successfully"
            redirect action: 'index'
        } else {
            flash.message = "Problem in user creation"
            redirect action: 'index'
        }

    }
}

并将下面的代码添加到index.gsp

代码语言:javascript
运行
复制
${flash.message}

有许多方法可以重定向到页面。您可以使用呈现、重定向、链、前向..etc。

有关更多信息,请查看grails 文档

票数 2
EN

Stack Overflow用户

发布于 2018-04-16 07:49:55

首先,您使用的是什么grails版本?如果是最新的(3.3.4),那么这个链接可能会有帮助。

简短地说:如果您没有指定要显式呈现的内容- grails试图找到视图以将动作执行结果显示为:

代码语言:javascript
运行
复制
grails-app/views/<controllerName>/<actionName>.gsp

看来你没有。

UPD

在grails控制器中有几种呈现动作输出的方法。将显式内容定义为:

代码语言:javascript
运行
复制
def myAction() {
    ...
    render "Hello World!"
}

这将导致“白色屏幕”与“你好世界!”左上角的短信。

另一种选择是在常规位置创建gsp视图为grails-app/ view //.gsp-如果不指定呈现方法调用(如您提供的示例中所示),它将在操作执行后自动呈现。

第三种选择是指定示范地图:

代码语言:javascript
运行
复制
def myAction() {
    ...
    [param1key: param1value, param2key: param2value, ...]
}

在呈现gsp视图时,将考虑到该模型。

请阅读我提供的文件链接。非常有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49851105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档