【发布时间】:2014-12-18 20:42:07
【问题描述】:
对不起我的英语。
方法delete来自TestMB:
public String delete(Post post) {
getDao().delete(post);
return "success";
}
test.xhtml:
<h:form id="form1">
<ui:repeat value="#{TestMB.entityList}" var="entityList">
<p>
#{entityList.name}
<h:commandLink action="#{TestMB.delete(entityList)}">
del
<f:ajax render=":form1"/>
</h:commandLink>
</p>
</ui:repeat>
</h:form>
当我点击链接“del”时页面没有刷新。如果我再次单击,页面将刷新。为什么?
如果我使用来自TestMB 的新方法delete:
private String txt1="test";
public String delete() {
try{
Thread.sleep(Long.valueOf("10000"));
}catch(Exception ex){}
txt1="";
return "";
}
还有新的test.xhtml:
<h:form id="form1">
#{testMB.txt1}
<h:commandLink action="#{testMB.delete}">
del
<f:ajax render=":form1"/>
</h:commandLink>
</h:form>
我点击链接“del”,10 秒后页面刷新。
为什么不能在第一种情况下工作?
【问题讨论】:
-
点击链接后,页面应该导航到
success.xhtml(无论后缀是什么 - 显示的隐式导航)。TestMB在第一种情况下看起来很不稳定。它应该以小写字母开头。当您在第一种情况下单击链接时,是否正确调用了该操作方法?如果它被正确调用,它应该导航到目标页面,除非中间有一些错误/异常。 -
Metod
delete在第一种情况下有效,它从数据库中删除条目。我在 glassfish 日志中看不到错误。