我有一个datatable来显示一些关于用户的信息,最后一列包含一个删除行的命令按钮。问题是,当我单击任意按钮时,所有行都会被删除,即操作被多次调用。我的Xhtml文件:
<h:form>
<p:dataTable var="user" value="#{admin.users}">
<p:column headerText="Login">
<h:outputText value="#{user.login}" />
</p:column>
<p:column headerText="Nom">
<h:outputText value="#{user.nom}" />
</p:column>
<p:column headerText="Prenom">
<h:outputText value="#{user.prenom}" />
</p:column>
<p:column headerText="Password">
<h:outputText value="#{user.password}" />
</p:column>
<p:column headerText="Operation">
<p:commandButton value="supprimer" onClick="#{admin.delete_user(user.login)}" ajax="false" />
</p:column>
</p:dataTable>
</h:form>我的豆子
@ManagedBean (name="admin")
@ViewScoped
public class Admin {
private ArrayList<User> users;
//getters & setters
public String delete_user(String login)
{
System.out.println(login);
UserDao ud=new UserDao();
try{
ud.Delete_Query(login);
}
catch(Exception e ){System.out.println(e.getStackTrace());}
return"#";
}
}当我单击任意行中的命令按钮时,所有用户登录都会打印在控制台中。
发布于 2015-05-04 20:51:11
您可以使用EL来调用onclick中的backingbean中的方法,而应该将其放在action中。Onclick只是用于javascript。
但这仍然不能解释你所描述的行为(但它可能已经打印了日志行,当你点击按钮时,你只是“认为”它们是打印出来的)。我希望在呈现页面时所有的删除操作都会发生。
https://stackoverflow.com/questions/30038620
复制相似问题