顯示具有 struts 標籤的文章。 顯示所有文章
顯示具有 struts 標籤的文章。 顯示所有文章

2012年9月5日 星期三

Struts 教學 - validwhen 介紹

Validwhen 是 Struts Validations 中的一個 validation rules

從Struts 1.2之後開始支援,其內容最主要的目的是

在我們驗證目前Field的值的時候,可能要從其他Field的值綜合起來進行判斷

譬如,我要驗證當購買數量的欄位值不為空的時候 那麼到貨日期也不能為空

首先 要使用 Validwhen 的話記得要放入 antlr.jar 檔

否則當 Struts 在進行驗證的時候會拋出如下的錯誤訊息

java.lang.noclassdeffounderror antlr/ token stream

以下貼出一段範例解說


<field property="emailAddress" depends="validwhen">
      <arg0 key="userinfo.emailAddress.label"/>
        <var>
          <var-name>test</var-name>
          <var-value>((sendNewsletter == null) or (*this* != null))</var-value>
        </var>
 </field>


2012年9月2日 星期日

Struts 教學 - html:checkbox

最近剛好遇到 在 Struts 中使用 html tag 的 checkbox element

在 Struts 中 CheckBox 的寫法如下


<html:checkbox styleId="hasInsuranceCHbox" name="insuranceVO" 
               property="hasInsurance" value="Y"
               onclick="javascript: checkHasInsurance ();"></html:checkbox>


跟其他 Struts 的 html tag 一樣

styleId 會辦替換為 HTML 標籤的 id

而 name 則是可以為一個Struts from bean 或是一個 requestScope 的屬性

其中 如果我們要讓這個Check box 能夠隨著 name 屬性所設定的物件

的hasInsurance這個attribute值被打勾或不打勾的話

可以透過 html:checkbox 的 value 屬性去設定,要注意的是

如果不設定的話 default 的值為 "on"  ((( 表示當 hasInsurance 為 on 才會被打勾

所以這裡依據你的需求去定義 value 值吧!!

另外 如果要對 html:checkbox 實作 javascript 的onclick的話

那麼 html:checkbox 也有提供 onclick 的屬性喔!



2012年3月16日 星期五

【DisplayTag】Excel亂碼問題

在使用DisplayTag的時候多,如果你會出Excel檔案的時候,多半會發生中文亂碼問題

因為DisplayTag並沒有針對中文作良好的編碼,因此如果你遇到類似問題

不仿採用下面介紹的方法解決亂碼的情況吧

先去下載 displaytag-export-poi-1.1.jar





這是目前官方推薦的作法,它已經將POI導出Excel的一些過程整合到

DisplayTag下以解決中文亂碼的問題,所以你只需要額外下載displaytag-export-poi-1.1這個JAR即可。

  並將它放到/WEB-INF/lib/  最後在classpath下的displaytag.properties中新增這一段

        export.excel.class=org.displaytag.export.excel.ExcelHssfView

        就可以解決問題了。

注意我使用的是 display1.1.1版本,所以你如果抓錯POI的JAR檔,就無法有效解決你的問題



2012年3月15日 星期四

【DisplayTag】匯出檔案

如果有要匯出 Excel,Xml,Pdf,RTF,CSV檔案的話,不仿可以考慮使用 DisplayTag

首先你必須先下載 displayTag相關的JAR檔案

在以下的範例環境我採用displaytag1.1.1版的

接著如果我們想針對網頁上的某份報表進行匯出的動作

可以將原本呈現報表的tabel標籤轉成如下所示:


<display:table export="true" name="show_query" pagesize="10"  >
    <display:column property="userName" title="姓名"  />
    <display:column property="email" title="連絡電話" />         
</display:table>


export="true" 告訴display:table 開啟匯出功能

pagesize="10" 則是每個table會有10筆資料

name="show_query" 資料的來源,這裡的show_query是request裡的一個屬性資料
                                                            等同於 request.getAttribute("show_query")

2011年9月25日 星期日

Struts 教學 - 檔案下載

在 Struts 架構下要實現檔案下載時,程式的 Action 不能實做 org.apache.struts.action.Action 介面

而是必須實做  org.apache.struts.actions.DownloadAction   並實現  getStreamInfo() method


如果你想要自行設定緩衝大小的話  你也可以覆寫 getBufferSize() method 


而 Strust 預設的緩衝大小為 4096


接著來介紹兩種不同的做法來實現 Strust 的檔案下載  同樣都是 implements DownloadAction


1.  FileStreamInfo 
     主要是針對主機上的檔案


2.  ResourceStreamInfo
     主要是針對你的 Web AP 的路徑下的檔案


以下個別來看看他的範例

2011年1月25日 星期二

Struts 教學 - DynaActionForm

在頁面中如果有過多的 Action 處理可能會導致需要大量的 ActionForm

而透過 DynaActionForm 則可以不必建立一個個的 ActionForm,而減少ActionForm 的數量

首先在使用 DynaActionForm 時跟 ActionForm 一樣須在 struts-config.xml 中的 form-beans 中設定

以下為範例程式,透過 form-bean 的 type 屬性設定為 org.apache.struts.DynaActionForm
即可建立一個動態的 ActionForm

<form-beans>
    <form-bean name="loginForm" type="org.apache.struts.DynaActionForm">
<!-- form-property 標籤設定了表單中所有對應的參數 -->
<!-- name屬性指定了參數名稱, type屬性則是屬性的型態 -->
<form-property name="account" type="java.lang.String" >
<form-property name="username" type="java.lang.String" >
<form-property name="password" type="java.lang.String" >
</form-bean>
</form-beans>

2011年1月19日 星期三

Struts 教學 - Eclipse 環境配置

來介紹一下如何在 Eclipse 中建置 J2EE 的 Struts 框架,

拿來和 Netbeans 比較,Eclipse 在針對眾多的 Framework 的開發比較麻煩點   之前用 Netbeans 開發時

在建置 WEB 專案就可以選擇要使用的框架,並且將其配置完成連開發過程都幫你用好

Eclipse 也可以達到這樣的情形,但需要一些 plug-in  但如果對於一個初學者來說

我是建議先暫時不要用 Plug-in,沒用還是可以開發的只是麻煩點而已

但你可以學到更多東西,應該說你會更熟悉程式碼,本篇就不用 Plug-in 來配置

如果要用的話可以去 google 上找一下  "easystrut"

首先先到 http://struts.apache.org/download.cgi 下載最新版  Struts 1.3.10

2010年10月16日 星期六

Struts 教學 - 國際化處理

Struts 對於WEB有支援國際化的應用

通常在台灣地區 瀏覽器是設定為 zn_TW 繁體中文的

以 IE 為例可以選擇工具列上的 工具 > 網際網路選項 > 語言

在這底下可以設定你的偏好設定,可以點選新增來增加其他語系

並將預設的語言移動最上面即可

接下來看一下 Struts 對於國際化的支援

首先如果我們要做到支援繁體中文(zn_TW)和英文(en_US)的WEB網頁

第一步必須先定義這兩個的資源文件

以 Netbeans 在一個有選擇Struts framework 的 WEB App 為例

2010年10月6日 星期三

Struts 教學 - DispatchAction 運用

在 Struts 處理請求過程中,處理請求的過程通常都是透過組態檔(struts-config.xml)

找到所設定的路徑並分派到所指定的 Action 處理。

如果你有一連串或是較相關的動作須執行,假如有四個動作

那你就可能必須分別撰寫四個 Action 來處理不同的動作....是有點麻煩

不過如果透過 DispatchAction 的話就會變的更加容易

首先運作原理是透過繼承 Action 的子類別 DispatchAction


緊接著你不必覆寫 execute() 這個 method

你可以透過請求參數決定你要的實際操作方法

簡單說如果你有個動作需要登入,那你可以在 form 標籤的 action 這樣寫

2010年9月23日 星期四

Struts 教學 - ActionForm

ActionForm (org.apache.struts.action.ActionForm) 基本上是個 JavaBean

擁有與 JavaBean 相同的一些規則,譬如對於屬性都須有 get/set method

而一般你建立一個 ActionForm 時都必須繼承 org.apache.struts.action.ActionForm

並且必須在組態檔 struts-config.xml 中的 <form-beans> 標籤裡建立 <form-bean>



<form-beans >
        //以下是一個 name 為 Member 並指定 type 為你繼承 ActionForm  的類別        
        <form-bean name="Member" type="fsc.useActionForm.Member" >
</form-beans >

其中有一些方法你可以覆寫它,這部份之後再多做說明。

2010年9月18日 星期六

Struts 教學 - 流程簡介

再上一篇介紹到第一個 Struts 程式,在這篇在繼續介紹他的工作原理

還記得大致上的流程以及重點吧,以下以一張簡圖說明之

2010年9月15日 星期三

Struts 教學

Struts 目前是 Apache Jakarta 的一個開源軟體,Struts 針對了 JSP, Servlet 改進

簡單說他的目的就是要減少運用 MVC model 開發的 WEB AP 的時間

在學習上這個 Framework 比較容易,比起 Hibernate 和 Spring 來說......

針對

1. Controller,Struts 統一將所有的請求不論是GET 或 POST 一律轉送到      ActionServletActionServlet 則透過組態檔 Struts-config.xml 
   來進行各個請求的配置


2. View,Struts 同樣提供了很多的 JSP 標籤庫


3. Model,主要分為 Action Form、JavaBean or EJB、Action