java - 带有数组名称的 playframework 表单输入

标签 java arrays templates input playframework

我正在尝试提交一个包含一些文本区域的表单,如下所示:

<textarea name="criticism[]" rows="3" cols="5"></textarea>

textarea需要有一个数组作为名称,因为页面上可以有无限多个,由用户用js添加。

值已正确传递到 Controller 。

在 Controller 中,我执行params.flash(),这似乎将值添加到 session 中,因为如果我在模板中执行${flash},它们就会打印到屏幕上。但是,我无法以任何方式访问它们。 ${flash.criticism} 返回 null,而 ${flash.criticism[x]} 将返回越界错误。

我是否遗漏了任何语法方面的内容?

干杯:)

最佳答案

闪存范围仅适用于当前请求和下一个请求。要将某些内容放入 session 中,请使用 session 。

但是闪存和 session 并不是为了存储值。它们的 cookie 大小限制为 4kb。要存储某些内容,请使用数据库和/或缓存

如果您想在下一页中重新渲染值,只需将字符串数组作为 'criticism' 参数传递给下一个渲染方法,并在模板中使用 ${criticism[x]}

关于java - 带有数组名称的 playframework 表单输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10345986/

相关文章:

java - URLClassLoader + loadClass + 在独立进程上调用 main 方法? java

java - 使数组中的所有值唯一

javascript - 将字符串转换为对象 - Javascript

c++ - 将静态 constexpr 类成员分配给运行时变量

c++ - 模板 C++ 中的模板 : <T, V<T>>

c++ - 包含一组自身和自定义比较器的类——循环引用

java - 如何使用 Mockito 测试我的 DAO 方法?

java - 如何使表格行适合屏幕宽度?

java - 无法在原始类型 void 上调用 forEach((<no type> de) -> {})

javascript 为什么两个不同的对象引用/使用相同的数组?