onclick="alert('Clicked submit button!');"
フォームを送信するときにスクリプトを実行する場合は、commandButton タグ内でイベントを使用できます 。
両方のアクションを実行する方法の 1 つは@ManagedProperty
、Bean でアノテーションを使用することです。たとえば、あなたのsumbitボタンをこれに変更してください
<h:form>
<h:commandButton value="Pay!" action="#{basketManager.pay()}"
class="btn btn-primary btn-lg" onclick="alert('Clicked submit button!');" />
</h:form>
次に、Bean は次のようになります。
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean(name = "basketManager")
@RequestScoped
public class BasketManager implements Serializable {
@ManagedProperty(value="#{accountManager}")
private AccountManager accountManager;
//this is nessesery!
public void setAccountManager(AccountManager accountManager) {
this.accountManager = accountManager;
}
public String pay() {
if(accountManager != null) {
//... do something using accountManager.currentAccount.username
}
return ""; // your action result
}
}
BasketManager Bean は、AccountManager Bean と同じかそれよりも小さいスコープにある必要があることを覚えておく必要があります。たとえば、AccountManager が場合、BasketManager は@SessionScoped
または@SessionScoped
または@ViewScoped
になり@RequestScoper
ます。そんなことはあり得ない@ApplicationScoped
!