如果要在提交表單時執行腳本,可以在commandButton標記內使用onclick="alert('Clicked submit button!');"
事件。
執行這兩個操作的方法之一是在bean中使用@ManagedProperty
批註。 例如改變你透過布頓這一個
<h:form>
<h:commandButton value="Pay!" action="#{basketManager.pay()}"
class="btn btn-primary btn-lg" onclick="alert('Clicked submit button!');" />
</h:form>
那麼你的豆可能更是這樣的:
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豆。例如,如果AccountManager是@SessionScoped
,則BasketManager可以是@SessionScoped
或@ViewScoped
或@RequestScoper
。那就不可能是@ApplicationScoped
!
爲什麼你有一個提交的鏈接裏面擺在首位? –
@LuiggiMendoza好吧,不是我想要的「鏈接」,我只是想參考腳本,所以它激活時,我按下按鈕。當我按下此按鈕而不是使用鏈接時,是否有另一種方法來運行腳本?這將是非常有益的。 –