是否有可能從javascript函數獲取java對象屬性。如何從javaScript函數訪問javaBean attribus?
實施例通過使用EL語言:
function jsFunction(){
var name = #{myBean.name};
}
是否有可能從javascript函數獲取java對象屬性。如何從javaScript函數訪問javaBean attribus?
實施例通過使用EL語言:
function jsFunction(){
var name = #{myBean.name};
}
直接 - 沒有。
您需要將java bean傳遞給客戶端(通常使用JSON完成),並通過HTTP請求(GET
或優選POST
)從客戶端獲取修改的bean。這就是AJAX(儘管AJAX可以用於任何服務器端執行環境,不管是否使用JVM)。
啊所以唯一的辦法是通過servlet的! hummm thak you –
@ berber5 servlets或jsps(實際上,jsps在執行前被編譯爲servlet,所以這兩個選項在技術上是等效的)。雖然,如果你堅持正確的MVC,就像你應該做的那樣,AJAX交互的動態內容必須通過servlet提供給客戶端和後端服務器。 –
我已經使用了第一個選項(servlets) ,但使用jsps我知道它的工作原理 –
如果你使用像Primefaces現代JSF框架,你可以使用內置的命令成分,如<p:remoteCommand>
。
http://www.primefaces.org/showcase/ui/ajax/remoteCommand.xhtml
例如
<h:form>
<p:remoteCommand name="rc" update="msgs" actionListener="#{remoteCommandView.execute}" />
<p:growl id="msgs" showDetail="true" />
<p:commandButton type="button" onclick="rc()" value="Execute" icon="ui-icon-refresh" />
</h:form>
...其中rc()
是您用來訪問remoteCommandView
Bean方法execute
JavaScript方法名稱。
例如
<div onclick="rc()">Clicking Here Calls remoteCommandView.execute</div>
或
<script>
function something(){
rc();
}
</script>
JavaScript是客戶端,所以我認爲這是行不通的 –