【问题标题】:How can I pass data between GSP and controller in Grails without storing in the database?如何在 Grails 中的 GSP 和控制器之间传递数据而不存储在数据库中?
【发布时间】:2015-08-12 14:20:41
【问题描述】:

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

【问题讨论】:

  • 不清楚你在问什么。你的意思是从gsp调用一个方法?还是将数据从浏览器中生成的 html 发送到服务器?
  • 例如,您有一个 并将数据放入视图中。我想获取我在 gextField 中输入的数据并在我的控制器中使用它。你明白吗?

标签: grails controller gsp


【解决方案1】:

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

观点:

<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
    }
  }
}

【讨论】:

  • 还有一个问题@gregg。如果我想在我的服务中使用这些数据,我该怎么做?谢谢
  • 创建一个新问题,我会提供答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 2014-02-22
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
相关资源
最近更新 更多