程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Struts開發指南之Taglib

Struts開發指南之Taglib

編輯:關於JAVA

TAGLIB

Struts對Taglib進行了擴展, Struts提供了四種基本自定義Taglib以及兩種附加Taglib:

bean:struts-bean taglib包含在訪問bean和bean屬性時使用的tag,也包含一些消息顯示的tag。

html:struts-html taglib包含用來創建struts輸入表單的tag,和其它通常用來創建基於HTML用戶界面的tag。

logic:struts-logic taglib包含的tag用來管理根據條件生成輸出文本,和其它一些用來控制的信息。

template:struts-template taglib包含的tag用來定義模板機制。

tiles:Tiles插件,用於簡化jsp開發

nested: 而Nested標記庫的作用是讓以上這些基本標記庫能夠嵌套使用,發揮更大的作用。

使用taglib可以簡化jsp頁面的開發,使得jsp包含最少的代碼。

如,在JSP開發過程中,虛擬目錄是相對於Domain的。如果http://localhost/context1/test.jsp執行href="/”則會返回到http://localhost/,如何返回到http://localhost/context1/呢? 這樣我們就可以用<html:link page="/" >按照相對於虛擬目錄的url來定位。

I18n支持

如果要顯示一套支持i18n的界面,首先要定義一個ApplicationResource文件,將信息以key=value的形式放入。在struts-config.xml中指定resouces的地址,即可用<bean:message key="welcome">這樣的tag來顯示,而不需要將信息固化在JSP文件中。

TILES:

Tiles中對頁面的劃分有點象jakarta的另外一個項目Turbine中的TDK。增加了layout的概念。

其實就是把一個頁面劃分為幾塊。 通常的來說一個頁面大概可以劃分為如下幾塊:

head頁面頭部:存放一個運用的公共信息:logo等,如果是網站可能是最上面的一塊.

menu頁面菜單:放置一個運用中需要使用的菜單,或者在每一個頁面都使用的連接.

footer頁面尾部:如版權信息等.

body頁面主題內容:每個頁面相對獨立的內容.

如果按上面的劃分那對每一個頁面我們只要寫body裡面的內容,其他的就可以共享重用.

如果大多數頁面的布局基本相同我們甚至可以使用一個jsp文件根據不同的參數調用不同的body.

Tiles除了替代Template的基本模板功能外,還增加了布局定義、虛擬頁面定義和動態頁面生成等功能。

Tiles強大的模板功能能夠使頁面獲得最大的重用性和靈活性,此外可以結合Tiles配置文件中的頁面定義和Action的轉發邏輯,即你可以將一個Action轉發到一個在Tiles配置文件中定義的虛擬頁面,從而減少頁面的數量。比如,下表中的Action定義了一個轉發路徑,它的終點是tile.userMain,而後者是你在Tiles配置文件中定義的一個頁面。

EXCEPTION

異常處理在Struts1.1中得到了很好的支持

可以在配置文件中指定由誰來處理Action類中擲出的某種異常。按照以下步驟來完成該功能:

1 實現org.apache.struts.action.ExceptionHandler的子類,覆蓋execute方法,在該方法中處理異常並且返回一個ActionForward對象

2 在配置文件中配置異常處理對象,你可以配置一個全局的處理類或者單獨為每個Action配置處理類

下表就定義了一個全局的處理類CustomizedExceptionHandler,它被用來處理所有的異常。

<global-exceptions>
<exception
handler="com.yourcorp.CustomizedExceptionHandler"
key="global.error.message"
path="/error.jsp"
scope="request"
type="java.lang.Exception"/>
</global-exceptions>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved