根据inputHidden字段的值,某些功能应该在Javascript端执行。
<h:inputHidden id="onlyCaseSensitive" value="#{testBean.isPageAllowed()}"/> 执行javascript后,应用程序将抛出错误属性not qritable非法语法for Set Operation
发布于 2013-01-17 04:21:52
应用程序引发错误属性不可写设置操作的非法语法
您的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-17 04:18:03
你的h:inputHidde的值应该指向带有getter和setter的backing的属性。因此,当您提交页面时,可能在访问setter字段时出现问题。
https://stackoverflow.com/questions/14366926
复制相似问题