我知道如何根據背景bean值來更改給定jsf標記(例如按鈕標籤)的值。雖然我在考慮是否有可能根據js函數的返回值來設置值。帶有js函數的JSF 2設置值
我會想象類似的onclick有:
值=「calljsfunction()」
在返回值將是按鈕的價值,但我無法找到任何語法,那會起作用。
是否有這樣的事情存在?
我知道如何根據背景bean值來更改給定jsf標記(例如按鈕標籤)的值。雖然我在考慮是否有可能根據js函數的返回值來設置值。帶有js函數的JSF 2設置值
我會想象類似的onclick有:
值=「calljsfunction()」
在返回值將是按鈕的價值,但我無法找到任何語法,那會起作用。
是否有這樣的事情存在?
綁定從後臺bean的變量和事件初始化變量BUTTONNAME preRenderView
<ui:define name="metadata">
<f:metadata>
<f:event type="preRenderView"
listener="#{myBean.initBean()}" />
</f:metadata>
</ui:define>
<h:commandButton value="#{myBean.buttonName}" action="#{myBean.execute()}" />
@ManagedBean
@RequestScoped
public class MyBean {
private String buttonName;
public String getButtonName() {
return buttonName;
}
public void setButtonName(String buttonName) {
this.buttonName= buttonName;
}
public void initBean(){
setButtonName("Submit");
}
}
嗨Albin,你確定,你回答了這個問題(是否可以將value參數設置爲js函數的返回值而不是後備bean的返回值)。或者我理解錯誤嗎?感謝你的回答! – user5918250
「我知道如何改變給定的jsf標籤(例如按鈕標籤)的值,具體取決於支持bean的值」 - 這是你問題的一部分,那我就是這樣回答的。 – Albin
對於通過JavaScript設置按鈕值的按鈕值,可以使用onload事件並設置按鈕值 -
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>JSF 2</title>
<script>
window.onload = function() {
// write your logic for finding value of the button
document.getElementById("myForm:button").value = "Submit";
// or
// document.getElementById("myForm:button").value = getValue();
// function getValue() { return "submit"; }
}
</script>
</h:head>
<h:body>
<h2>JSF 2</h2>
<h:form id="myForm">Type your name here :
<h:inputText value="#{helloWorld.name}"></h:inputText>
<br />
<br />
<h:commandButton id="button" style="margin-left:120px;" value=""
action="welcome"></h:commandButton>
</h:form>
</h:body>
</html>
你也可以把你的JavaScript代碼放在一個單獨的.js文件中
我覺得不可能。 JavaScript函數可以在頁面加載,onclick等事件上執行,'value'屬性不是事件。如果要實現此功能,請在頁面加載時設置按鈕的值(onload event) –
非常感謝!如果你這樣描述它真的很有意義! – user5918250