2

今日はとても簡単な仕事で、助けが必要でした。まず、私の環境について説明しましょう。私たちはJava/Hibernate / SEAM / Facelets / JSF / RichFaces&A4Jのセットアップを行っています。それについてはよくわかりません。

古いaspプラットフォームでのすべての作業が完了したら、これを使用します。

だから私はこのようなものを持っていました(stockCheckの後に()を持っていたかどうかは思い出せません..私は今家にいます):

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

ただし、stockCheck()メソッドは実行されません。DBにレコードを作成するのが仕事の値を返すことはなく、それを完全に行います。

それで、私はいくつかのことを試しましたが、何も機能しませんでした。同僚に尋ねると、彼はそれをa4jに変更するだけで、機能するはずだと言いました。私は彼に理由を尋ねましたが、彼は知りませんでした。

なぜ物事が機能しているのか、機能していないのかがわからないとき、私は本当に電話を切ってしまいます。

電子メールをデータベースに送信するための解決策は次のとおりです。

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

ところで:a4jの名前空間はaだけに設定されています。

私は誰かがこれについて私にいくつかのことを説明できることを望んでいます。

舞台裏で何が起こったのか、そして<h:commandLink>この状況での失敗について何を理解する必要があるのか​​?

ありがとうございました。

4

1 に答える 1

1

これは、フォームをネストしている場合に発生する可能性があります。これはHTMLでは違法であり、動作は指定されておらず、使用されているWebブラウザによって異なります。ajaxリンクはフォームを送信せず、JavaScriptによって入力値を収集XMLHttpRequestし、バックグラウンドでを送信するだけです。

参照:

于 2012-10-25T23:22:16.960 に答える