【发布时间】:2013-07-15 04:20:08
【问题描述】:
我有一个支持 bean (somebean),它具有三个布尔属性 a、b 和 c,每个属性都有一个 getter 和 setter。
我有一个如下所示的表单:
<h:outputText rendered="#{somebean.b}">
B is true
</h:outputText>
<h:form id="blah">
<h:inputHidden value="#{somebean.a}" id="a"/>
<h:commandLink id="zzzz" value="do it" action="#{somebean.doIt}"/>
</h:form>
a、b 和c 三个属性中的哪一个可以由客户端设置?我尝试将b=true 和c=true 添加到POST 请求中,但是SomeBean.setB(boolean) 和SomeBean.setC(boolean) 从未被调用。所以也许只能设置a——逻辑是如果JSF中有一个设置它的字段,客户端就可以设置它。但也许我错了,它只是有一些我不知道的默认名称可以用来设置它...
我是否应该假设我的 bean 上的任何属性都可以由客户端设置?如果没有,我应该假设客户端可以设置哪些(因此在验证期间必须担心)?
如果我的表单有条件地呈现,会发生什么?例如:
<h:outputText rendered="#{somebean.b}">
<h:form id="blah">
<h:inputHidden value="#{somebean.a}" id="a"/>
<h:commandLink id="zzzz" value="do it" action="#{somebean.doIt}"/>
</h:form>
</h:outputText>
在这种情况下,如果b为假,a还能设置吗?
“客户端”是指向我的网站发送 HTTP 流量的任何东西。例如,可能是恶意代码。
【问题讨论】: