1

根据 inputHidden 字段的值,应在 javascript 端执行某些功能。

<h:inputHidden id="onlyCaseSensitive" value="#{testBean.isPageAllowed()}"/> 

执行 javascript 后,应用程序抛出错误 Property not qritable Illegal Syntax for Set Operation

4

2 回答 2

1

您的值h:inputHidde应该指向带有 getter 和 setter 的支持 bean 的属性。因此,可能当您提交页面时,访问 setter 字段时出现问题。

于 2013-01-16T20:18:03.270 回答
1

应用程序抛出错误 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 呈现一个完整的 JavaScript 变量,而无需弄乱隐藏输入和HTML DOM 遍历。

例如

<script>
    var onlyCaseSensitive = #{testBean.pageAllowed};
</script>

这将在 JSF 生成的 HTML 输出中结束,如下所示(右键单击页面并查看源代码以查看它):

<script>
    var onlyCaseSensitive = true;
</script>
于 2013-01-16T20:21:51.773 回答