Ryan's Java world!

          something about Java and opensource!

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            51 Posts :: 25 Stories :: 59 Comments :: 0 Trackbacks

          Wicket 教程4:如何使用 Include,Panel,Fragment,Link

          前面我沒看到了如何使用一些基本的markup,和幾個示例

          ( http://www.hexiao.cn/blog/index.php?job=art&articleid=a_20060807_153301? ), 這次再來看看幾個復雜一點的markup.

          下次來看看 Form 及其相關(guān)的markup的使用.

          [b]Include [/b]是一個和JSP中的include指令功能差不多的markup,用來導入一個文件.

          可以使用絕對和相對路徑來導入文件, 該類的使用是很簡單的.
          Java code:
          ?...
          ??add(new Include("header", "header.html"));
          ??add(new Include("footer", "footer.html"));
          ?? ?...
          and Html Code:

          ?? ...
          ??<div>
          ?? <div wicket:id="header">header comes here</div>
          ?? <div>I am the body!</div>
          ?? <div wicket:id="footer">footer comes here</div>
          ??</div>
          ?? ...
          ?
          上面就可以實現(xiàn)一個簡單的布局框架.


          [b]Panel: [/b]panel有點類似于swing中的panel,用來放置其他markup, panel的使用也

          是很簡單的, 如下:
          創(chuàng)建一個mypanel類:
          class MyPanel extends Panel {
          ?
          ?public MyPanel(String id) {
          ??super(id);
          ??add(new Label("label", "yep, this is from a component

          proper"));
          ??add(new AnotherPanel("otherPanel"));
          ?}
          }

          該類繼承與Panel,里面添加了兩個markup,一個Label,另外一個Panel(Panel可以

          無限嵌套). 然后編寫對應的html文件. MyPanel.html

          <?xml version="1.0" encoding="UTF-8"?>
          <html xmlns="<head>
          ??? <title>Wicket Examples - sample panel</title>
          </head>
          <body>
          ?<wicket:panel>
          ??<p style="border: 2px dotted #fc0; padding: 5px;">
          ?? Here are some panel contents for ya.<br />
          ?? Put arbitrairy Wicket components in your Panels,
          ?? like this label: <span wicket:id="label" style="background-

          color: aqua" >to be replaced</span>, or<br />
          ?? even another panel: <span wicket:id="otherPanel"?

          style="background-color: aqua">also to be replaced</span>.<br />
          ?? You can nest panels any deep you want.
          ??</p>
          ?</wicket:panel>

          </body>
          </html>

          下面是使用上面的panel的代碼,
          Java code:
          ...
          ?add(new MyPanel("panel"));
          ...
          Html code:
          ??? <span wicket:id="panel">panel contents come here</span>

          [b]Fragment:[/b] 當有很多小段信息要組織的時候,使用很多panel可能是不雅觀的,這時

          就可以使用Fragment了.
          示例如下:
          Java code:
          ...
          ??? add(new Fragment("myPanel1", "frag2"));
          ...

          Html code:
          ...
          <span wicket:id="myPanel">Example input (will be removed)</span>
          ???????????
          ???????????? <wicket:fragment wicket:id="frag1">panel

          1</wicket:fragment>
          ???????????? <wicket:fragment wicket:id="frag2">panel

          2</wicket:fragment>
          ...


          [b]Link:[/b] link就是web頁面中的連接了, 這里的link可以是一切連接,如 常用的<a/>

          , button... 這里的link 和JSF中的link所擁有的功能一樣強大.
          下面來看幾個示例:
          普通的link:
          Java code:
          ...
          ?add(new Link("link1"));
          ...
          Html code:
          ...
          <a href="#" wicket:id="link1">this link is clicked <span

          wicket:id="linkLabel1">n</span> times</a>
          ...
          使用不同的html 可以顯示為不同的樣式,如:
          button樣式的按鈕:
          Html code:
          <button wicket:id="link2">this button is clicked <span

          wicket:id="linkLabel2">n</span> times</button>

          or:
          <input type="button" wicket:id="link3" value="this button is clicked n

          times" />

          [b]ExternalLink:[/b] 是link的一種, 特別用來連接到該站點以外的資源, 示例:
          Java code:
          ...
          //?? add a link that goes to javalobby
          add(new ExternalLink("externalLink1", "

          JavaLobby"));
          ...

          Html code:
          ...
          ?<a href="#" target="_new" wicket:id="externalLink1">this body

          will be replaced</a>
          ...

          [b]PageLink:[/b] 也是link的一種,實現(xiàn)頁面之間的跳轉(zhuǎn): 示例:
          Java code:
          ...
          ?// 可以有多種方法使用該類,下面是一種推薦的方法
          ??add(new PageLink("pageLink", new IPageLink(){
          ???public Page getPage(){
          ????return new NonBookmarkablePage

          (QuickStart4.this);
          ???}

          ???public Class getPageIdentity(){
          ????return NonBookmarkablePage.class;
          ???}
          ??}));

          ?...
          Html code:
          ...
          ?<a wicket:id="pageLink">go to our private/ non bookmarkable

          page</a>
          ....

          [b]BookmarkablePageLink:[/b] 也是link的一種,實現(xiàn)一種可以作為書簽收藏的連接,也

          就是無狀態(tài)的連接. 可以帶參數(shù)也可以不帶參數(shù): 示例:

          Java? code :
          ...
          ??add(new BookmarkablePageLink("pageLinkNoArgs",

          BookmarkablePage.class));


          ??PageParameters parameters = new PageParameters();
          ??parameters.put("message", "This message was passed as a

          page parameter argument");
          ??add(new BookmarkablePageLink("pageLinkWithArgs",

          BookmarkablePage.class, parameters));

          ....

          Html code:

          ...
          <p>
          ?<a wicket:id="pageLinkNoArgs">go to our bookmarkable page

          without passing any arguments</a>
          ?</p>

          ?<p>
          ?<a wicket:id="pageLinkWithArgs">go to our bookmarkable page

          passing a message argument</a>
          ?</p>
          ...

          討論: http://bbs.hexiao.cn/thread.php?fid=9

          代碼下載: http://bbs.hexiao.cn/read.php?fid=9&tid=15&fpage=1?
          允許所需要的類庫,到這里下載: http://bbs.hexiao.cn/read.php?fid=9&tid=12&fpage=1

          posted on 2006-08-08 09:25 冰雨 閱讀(2067) 評論(1)  編輯  收藏 所屬分類: Opensource

          Feedback

          # 111[未登錄] 2016-05-09 13:56 111
          111  回復  更多評論
            


          JSF中文技術(shù)文摘
          主站蜘蛛池模板: 垣曲县| 闸北区| 江西省| 元谋县| 邹平县| 稻城县| 阿鲁科尔沁旗| 黔西县| 梓潼县| 海丰县| 黎川县| 扶余县| 泽普县| 武定县| 夏津县| 阳原县| 哈密市| 丽江市| 十堰市| 海伦市| 和田县| 宁乡县| 邢台市| 资溪县| 四会市| 屯留县| 响水县| 罗田县| 临桂县| 墨脱县| 策勒县| 花莲县| 澳门| 宁都县| 肃北| 酒泉市| 山阳县| 巫山县| 时尚| 丰都县| 利津县|