我的jsp中有这样的结构:
<h:commandLink action=#{docbean.save}>
<a4j:actionParam name="somename" value="bill_all" assignTo="#{billdoc.billType}"/>
<a4j:actionParam name="somename" value="bill_document" assignTo="#{docbean.doctype}"/>
</h:commandLink>
在调试过程中,我看到了billdoc.billtype和docbean.doctype具有相同的值:“ bill_document”。
是虫子吗?如果没有,那我该如何为我的托管bean增值呢?
更新:
找到了答案:
我有两个同名的actionParam。 ActionParam是f:actionListener + f:param。因此,如果您有多个同名的actionparams,您将遇到我遇到的问题。 RichFaces和JSF不会警告您。
最佳答案
首先,您需要在<a4j:actionParamvalue
-value
之前留一个空格
其次,您可以尝试使用此方法代替<a4j:actionParam>
:
<f:setPropertyActionListener value="bill_all" target="#{billdoc.billType}" />
如果表单中存在验证错误,则可能需要在
immediate="true"
上放置commandLink
。您可以通过在页面顶部添加<rich:messages />
来查看这些错误。