为什么a:commandLink的action属性有效,但h:commandLink不行?

时间:2012-10-24 21:21:14

标签: java jsf richfaces jsf-1.2

今天我有一个非常简单的任务,我需要帮助。首先让我解释一下我的环境。 我们在Java / Hibernate / SEAM / Facelets / JSF / RichFaces& A4J设置..我不太了解它。

当旧的asp平台上的所有工作都完成时,我会使用它。

所以我有这样的事情(我只是不记得我是否有()股票检查后...我现在回家了):

<h:commandLink value="Submit" action="session.stockCheck()"/>

stockCheck()方法不会运行!它没有返回一个值,它的工作就是在数据库中创建一个记录,它完美地做到了。

所以我尝试了一些事情,什么都没有用,我问我的同事,他说要把它改成a4j,它应该有效。我问他为什么,但他不知道。

现在看,当我不明白为什么事情有效或无效时,我真的被挂了。

将电子邮件提交到数据库的解决方案是:

<a:commandLink value="Submit" action="session.stockCheck()"/>

BTW:我们将a4j的命名空间设置为a。

我在这里希望有人可以向我解释一些事情。

幕后发生的事情以及<h:commandLink>在这种情况下失败需要了解的内容?

谢谢。

1 个答案:

答案 0 :(得分:1)

如果您正在嵌套表单,就会发生这种情况。这在HTML中是非法的,并且行为未指定并且取决于所使用的webbrowser。 ajax链接不提交表单,它只是通过JavaScript收集输入值,然后在后台发送XMLHttpRequest

另见: