javascript - 添加输入隐藏字段值的方法

标签 javascript jsf-2

根据 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/

相关文章:

java - 如何同时使用导航规则和 f :ajax

php - URL 类/方法路由的安全性

javascript - 如何检测 Node.js 中的全局值变化

jsf - java.lang.IllegalArgumentException : javax. faces.lifecycle.ClientWindowFactory

Javascript 与 JSF

jsf - 带转换器的复合 JSF 组件

javascript - Gulp:编译后如何连接文件?

Javascript 文件在链接时不起作用,但在内部工作?

javascript - 可以简单地使用 module.property 向模块添加属性或方法吗?

java - 如何使用 @ConversationScoped 处理多个支持 bean?