根据 inputHidden 字段的值,某些功能应该在 javascript 端执行。
<h:inputHidden id="onlyCaseSensitive" value="#{testBean.isPageAllowed()}"/>
执行 javascript 后,应用程序抛出错误 属性不是 qritable 集合操作的非法语法
最佳答案
the application throws an error Property not writable Illegal Syntax for Set Operation
您的 EL 表达式 #{}
无效。它必须作为值表达式求值,而不是作为方法表达式求值。不可能对给定的方法表达式执行 setter 方法调用,而在提交 JSF 表单时需要这样做。您需要删除 is
前缀和那些括号,以使其成为有效的值表达式。
<h:inputHidden id="onlyCaseSensitive" value="#{testBean.pageAllowed}"/>
这需要一个 public boolean isPageAllowed()
getter 方法和一个 public void setPageAllowed(boolean pageAllowed)
setter 方法。
如果您实际上只需要将 JSF 托管 bean 属性用作 JavaScript 变量,那么您根本不应该将其呈现为隐藏输入,而是让 JSF 呈现完全有值(value)的 JavaScript变量而不需要弄乱隐藏的输入和 HTML DOM 遍历。
例如
<script>
var onlyCaseSensitive = #{testBean.pageAllowed};
</script>
这将在 JSF 生成的 HTML 输出中结束,如下所示(右键单击页面并执行 View Source 以查看它):
<script>
var onlyCaseSensitive = true;
</script>
关于javascript - 添加输入隐藏字段值的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14366926/