問題:
i)在JSF2應用程序,我想用一個標籤控件,當用戶點擊一個選項卡上,其中,創建一個頁面,該面板的內容如下通過ajax調用從服務器中的xhtml文件加載。
ii)我希望這可以支持正常的降級(當Javascript被禁用時),這樣一旦點擊該選項卡,就會觸發一個HTTP請求,並加載一個新頁面......或者通過漸進式增強來加載新頁面。
阿賈克斯回退時禁用JavaScript
部分解決方案: 我)我想我可以通過張貼BalusC的代碼示例中How to ajax jsf 2 outputLink
做到這一點: -
<h:form>
<f:ajax render=":include">
<h:commandLink value="Home" action="#{menuManager.setPage('home')}" /><br />
<h:commandLink value="FAQ" action="#{menuManager.setPage('faq')}" /><br />
<h:commandLink value="Contact" action="#{menuManager.setPage('contact')}" /><br />
</f:ajax>
</h:form>
<h:panelGroup id="include">
<ui:include src="#{menuManager.page}.xhtml" />
</h:panelGroup>
問題
如何延長這一解決問題(ii)或者還有其他完全不同的方法嗎?我認爲也許我可以用無腳本來實現這一點,但無法弄清楚如何!
編輯:可能的解決方法 - 尚未驗證:
上面的代碼應該工作,即使AJAX是禁用;它應該只是通過HTTP工作,根據http://www.laliluna.de/articles/posts/jsf-2-evaluation-test.html :)
優雅!我會嘗試一下。
什麼?你有禁用JavaScript的用戶?我寧願升級用戶... – greyfairer 2012-01-03 20:30:23
您確定要投入大量的時間和精力來處理瀏覽器禁用javascript的用戶嗎?根據[這個雅虎研究](http://developer.yahoo.com/blogs/ydn/posts/2010/10/how-many-users-have-javascript-disabled/),這約爲1%。我只是在說'。 – DOK 2012-01-03 20:31:26
我需要支持各種各樣的用戶,以及小屏幕設備(其中許多還缺少js)。我不打算花費太多精力(重定向到我的應用程序的不同版本等),並儘可能地通過代碼重用來做到這一點。因此我的問題。 :) – Nilesh 2012-01-03 20:35:29