如何在不存储在数据库中的情况下在 Grails 中的 GSP 和控制器之间传递数据?

How can I pass data between GSP and controller in Grails without storing in the database?

是否可以在GSP视图中输入数据,并在程序内部的控制器中使用这些数据进行一些操作,而无需将这些数据存储在域中。例如,我有一个 g:textField 并输入我的名字。我希望能够使用我在控制器中输入的名称进行操作。

None 从视图传递到控制器的数据必须与任何特定域对齐。有几种方法可以做到这一点。

观点:

<g:textField name="name" />

控制器:

class SomeController {
  def someAction() {
    def name = params.name
    // do something with name
  }
}

您也可以使用 Command Object

命令对象:

@Validateable
class SomeCommand {
  String name

  static constraints = {
     name nullable: false
  }
}

控制器:

class SomeController {
  def someAction(SomeCommand someCommand) {
    if (!someCommand.hasErrors()) {
      def name = someCommand.name
      // do something with name
    }
  }
}