這是第二次與Wicket的不期而遇了,雖然上次專案的時間很短,但是還是喜歡上這個Java的輕量級的系統框架。業務程式碼和前臺表示的完全分離這是我欣賞他的原因,把複雜的事情簡單化這一直是我所追求的做事方式,所以我和Wicket可以說是相見恨晚....O(∩_∩)O哈哈~
而JQuery則是個優秀的JS工具包,它替程式設計師完成了大量的重複工作,是一些複雜的而常用方法系統化、函式化。Wicket和JQuery的結合可謂是天作之合!
言歸正傳~~~~
Wicket和JQuery的結合是好事,但是兩者貌似有些不調好,這可能是實現機制的不同,這可能說的不正確,應該說對技術的瞭解不夠深入,你初次接觸會發現,通過JQuery繫結的控制元件事件會失效。
而我最終發現其原因在於我沒有遵循Wicket的框架的編碼原則,Wicket對於我這樣的程式設計師就給予了懲罰,你不遵守我就不理你...(⊙o⊙)…
Wicket:如果你要用JQuery一定要通知它,就是通過Wicket將繫結事件進行註冊,這樣你就可以後顧無憂的使用Jquery和javascript程式碼了...
HTML程式碼
1 <form wicket:id="frm" id="frm" > 2 <Div wicket:id="divMsg" id="divMsg"></Div> 3 4 <Label wicket:id="pageTitle" id="pageTitle">null</Label><br/><br/><br/> 5 <select wicket:id="zList" id="zList" style="width:200px"></select><br/> 6 input<br/><input type="text" wicket:id="inputTxt" id="inputTxt" style="width:200px"/><br/> 7 <input type="checkbox" wicket:id="chk001" id="chk001" />Checkbox<br/> 8 <input type="button" wicket:id="but001" value="Clear" id="but001" /> 9 <input type="button" wicket:id="but002" value="JQuery" id="but002" /> 10 <input type="button" wicket:id="but003" value="MSG" id="but003" /> 11 <br/> 12 13 14 </form>
JS
function myclear(){ //$("#inputTxt").attr("value",""); $("#inputTxt").val(""); $("#inputTxt").css({color:'#ff0011',background:'white'}); $("#divMsg").html(""); $("#chk001").attr("checked",false); }
JAVA程式碼
1 but001.add(new AjaxFormComponentUpdatingBehavior("onclick") { 2 private static final long serialVersionUID = 1L; 3 4 @Override 5 protected void onUpdate(AjaxRequestTarget target) { 6 7 target.appendJavaScript("myclear();"); 8 } 9 }); 10 _frm.add(but001);