將JS數組值傳遞給後臺bean如何使用f:setPropertyActionListener
或任何其他方法將JavaScript中的數組(基本上是由用戶選擇的某些錶行)傳遞到後臺bean數組?使用<f:setPropertyActionListener />
回答
沒有更具體的我會假設你正在談論一個命名數組或首先需要轉換爲字符串的JSON對象。
<script type="text/javascript">
function callBackingBean(myJSON) {
var stringArray = JSON.stringify(myJSON);
jQuery('#theClientIdOfTheField')[0].value = stringArray;
var button = jQuery('#theClientIdofthebutton');
button.click();
}
</script>
<h:inputHidden id="input1" value="#{managedBean.managedProperty}" />
<h:commandButton id="buttonid" style="display: none;" />
實質上的策略是使用一個隱藏的輸入,是以JSON轉換字符串作爲它的值,而隱藏按鈕,則從Javascript調用。它甚至不需要監聽器或操作,但是生成的回發會導致字符串被更新爲託管屬性。
使用f:setPropertyActionListener不是適合此問題的解決方案。我建議你創建h:inputHidden字段,將它綁定到一個bean屬性並使用javascript更新它的值(在那裏設置數組信息)。表單提交後,您的bean將會收到您在使用javascript之前設置的值。
可以請你幫我,我不知道如何每次更新一個隱藏的領域新的一排。這將是真正的幫助完整,如果你張貼代碼或sumthing .. thanx提前 – amRika 2012-07-20 11:44:05
如果你解釋確切的用例會更好。所以我們可以知道你在做什麼。 – 2012-07-20 11:49:20
- 1. <F:setPropertyActionListener ... />不起作用
- 2. 的<f:setPropertyActionListener>父是類型了ActionSource
- 3. <F:setPropertyActionListener>父的類型了ActionSource不
- 4. 我可以在autoComplete組件內使用<f:setPropertyActionListener>嗎?
- 5. <F:setPropertyActionListener>父的類型了ActionSource的不是,類型爲:com.sun.faces.component.PassthroughElement
- 6. 使用>>,>,> |,||,| <,<,<<,<<
- 7. 如何使用f:setPropertyActionListener和p:splitButton?
- 8. F:setPropertyActionListener不調用
- 9. 用例圖使用<<extend>>
- 10. 使用<>
- 11. <f:actionListener>在有狀態的EJB/CDI bean上導致「transaction not active」異常,而<f:setPropertyActionListener>不支持
- 12. f:setPropertyActionListener不起作用
- 13. 使用</p> <pre><code>$programItem[0]->Name </code></pre> <p>在名稱
- 14. 使用<video>和<track>
- 15. 使用<button>代替<a>
- 16. MalformedParameterizedTypeException當使用ArrayList <ArrayList<>>
- 17. 當你使用<% -%>代替<% %>
- 18. 無法使用<QJsonValue><QJsonObject>
- 19. 流星使用</p> <pre><code>meteor update </code></pre> <p>與0.6.5
- 20. </p> <pre><code>console.log(new Buffer(12)) </code></pre> <p>如何使用的console.log
- 21. 如何使用</p> <pre><code>ModelMetadata.FromLambdaExpression(expression, html.ViewData) </code></pre> <p>然而
- 22. 如何使用XPATH保持<p><img ... /></p>?
- 23. 使用<p:datatable>中的<p:commandbutton>顯示<p:dialog>
- 24. 我如何使用<option></option><sup></sup>在HTML中
- 25. 如何使用</p> <pre><code>dbms.lob.createTemporary(v_clob,true) </code></pre> <p>,並嘗試使用</p> <pre><code>dbms.lob.freetemporary(v_clob) </code></pre> <p>它不清除CLOB釋放清除CLOB的PL SQL
- 26. 文件時存在使用</p> <pre><code><activation> <file> <exists>src/main/resources/*beans.xml</exists> </file> </activation> </code></pre> <p>這正常使用通配符
- 27. 如</p> <p><code><p>This is text </p></code>或<code><div></code>或<code>This is text</code></p> <p>使用<code>XmlPullParser</code>檢索URL
- 28. 使<b></b><i></i><u>在文本框</u>和<br>
- 29. 使用<regex>
- 30. 使用<fx:root>
你好楓,因爲我有更多的然後一行可以請你幫我怎麼做? – amRika 2012-07-20 12:49:04
@ user1501345我假設您使用的是dataTable,並且您在詢問如何將每行的JSON對象發送到託管屬性,這告訴我您可能不太瞭解dataTable組件。大多數第三方數據表控件都內置了使其數據同步到託管屬性非常簡單的功能,因此,如果不理解完整的用例,我不得不假定你正在做這個完全錯誤的事情。 – 2012-07-20 13:04:25
你知道嗎,你只需要以長格式編寫'jQuery'一次?通過將代碼封裝在'(function($){....})(jQuery);'中,無論是否使用了noConflict,都可以使用'$'。你可以簡單地使用'.val(...)'而不是'[0] .value = ...' – ThiefMaster 2012-07-20 13:08:03