我在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增值?
更新:
找到答案:
我有两个有一个名字的actionParams。 ActionParam是f:actionListener + f:param。所以,如果你有几个带有一个名字的动作游戏,你就会遇到问题。 RichFaces和JSF并没有警告你。
答案 0 :(得分:3)
首先,您需要<a4j:actionParamvalue
之前的空格 - value
其次,您可以尝试此而不是<a4j:actionParam>
:
<f:setPropertyActionListener value="bill_all" target="#{billdoc.billType}" />
如果表单中存在验证错误,您可能需要在immediate="true"
上加commandLink
。您可以通过在页面顶部添加<rich:messages />
来查看这些错误。
答案 1 :(得分:0)
尝试使用a4j:commandLink。或者 - 如果你坚持使用h:commandLink - 尝试在a4j:support标签中嵌入你的a4j:actionParams。