我的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 />来查看这些错误。

09-30 16:53