有一个带ADF的基本JSF项目需要从表中删除一行(每行是一个Album
),并且删除按钮位于请求的行旁边(每行有一行)。
使用JDeveloper尝试使用ADF(仅使用简单的JSF尝试此解决方案:(How can I pass selected row to commandLink inside dataTable?)
但是,在我看来,setPropertyListener
和setPropertyActionListener
没有调用(在setCommon()
函数中放置了一些虚拟注释,未看到,del_action()
的漂亮注释未显示)。还尝试了@SessionScoped
bean。
主要问题:即使价值传递不起作用,出了什么问题?
任何想法都会受到高度赞赏(对于缺乏语法亮点,还是一个新手,还没有想出来)抱歉:))
JSF部分:
<af:column sortable="false" headerText=" " align="start" id="c4">
<h:commandButton value="Delete" id="del" action="#{backing_main.del_action}">
<af:setPropertyListener to="#{backing_main.common}" from="#{row.albumName}" type="action" />
</h:commandButton>
</af:column>
支持Bean:
@ManagedBean(name="backing_main") @ViewScoped ... private String common; public void setCommon(String common){ System.out.print("!!!SET!!!!!"); this.common = common; } public String getCommon(){ return this.common; } public void del_action() { System.out.print("!!!!!!!!!!!!!!!!Delete1"); } public static class Album{ String artist; String albumName; //constructor, setter, all the expected stuff }
答案 0 :(得分:0)
您最好使用ADF组件来获得预期结果:af:commandButton
,而不是h:commmandButton
。
如果您没有使用任务流来删除行,那么最好切换到actionListener
,而不是action
。