今天我有一个非常简单的任务需要帮助。首先让我解释一下我的环境。 我们正在使用 Java/Hibernate/SEAM/Facelets/JSF/RichFaces 和 A4J 设置..我对此了解不多。
当旧的 asp 平台上的所有工作都完成时,我会使用它。
所以我有这样的事情(我只是不记得在 stockCheck 之后我是否有 () ..我现在在家):
<h:commandLink value="Submit" action="session.stockCheck()"/>
stockCheck()
虽然方法不会运行!它不返回值,它的工作是在数据库中创建记录,而且它完美地做到了这一点。
所以我尝试了一些方法,但没有任何效果,我问我的同事,他说只需将其更改为 a4j,它应该可以工作。我问他为什么,他也不知道。
现在看,当我不明白为什么事情正常或不正常时,我真的会挂断电话。
将电子邮件提交到数据库的解决方案是:
<a:commandLink value="Submit" action="session.stockCheck()"/>
顺便说一句:我们将 a4j 的命名空间设置为 a。
我在这里希望有人能向我解释一些事情。
<h:commandLink>
失败的幕后发生了什么以及需要了解什么?在这种情况下?
谢谢。
最佳答案
如果您嵌套表单,就会发生这种情况。这在 HTML 中是非法的,并且行为未指定并且取决于所使用的网络浏览器。 ajax 链接不提交表单,它只是通过 JavaScript 收集输入值,然后在后台发送一个 XMLHttpRequest
。
另见:
关于java - 为什么是 :commandLink's action attribute works but h:commandLink's does not?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13057945/