溫故Struts2前8堂課知識

2021-05-06 15:37:08 字數 2207 閱讀 1515

一、型別轉換,由string型別轉化為物件型別,兩種方式:

1.全域性轉化(支配專案中所有string與制定物件的轉化)-----實現方式:乙個全域性屬性檔案,名字固定:xwork-conversion.properties

配置檔案中是正對類物件配置轉化該物件的converter;例如:com.test.bean.point=com.test.converter.pointconverter

2.區域性轉化(針對乙個aciton控制string轉化為物件)-------實現方式:根據不同aciton取名,乙個action乙個屬性檔案:action名+'-conversion.propertise'

而且配置檔案中是針對屬性配置轉化該屬性的converter;例如:point=com.test.converter.pointconverter

型別轉化需要程式設計師提供乙個converter類,當然該類繼承defaulttypeconverter或者strutstypeconverter

三、struts2自動型別轉化與自動校驗:

struts2內建的自動型別轉化僅能實現簡單型別和string型別間的轉化、string與物件間的轉化則需要程式設計師通過「型別轉換」方式了。

struts2做的自動校驗實際上只是對型別校驗,即當struts2自動型別轉化失敗時,它便會給出校驗失敗資訊。但校驗資訊並不可觀。

而一旦在jsp頁面中引用了struts2的標籤<%@ taglib prefix="s" uri="/struts-tags" %>,並使用其中的標籤這些,struts2都會自動在型別轉化失敗後給出校驗失敗資訊。

而這種資訊並不友好,所以我們為了更人性化有兩種選擇:

1.不使用struts2標籤,引用html自帶的form標籤(顯然這是最糟糕的選擇,因為struts2標籤擁有很多優勢)。

2.使用struts2標籤,將它的自動校驗資訊根據我們的要求來顯示,即改變struts2的預設提示。顯然這是很棒的。

四、struts2人為校驗,有兩種校驗方案

1.重寫validate()方法,在方法體內做邏輯判斷和增加錯誤提示資訊。該方法會對所在action中的所有execute()邏輯方法做校驗,例如我們有input()方法、有update()方法,都會被它校驗,也就是說,對於action而言,validate方法是它的全域性校驗方法。針對這種不方便,struts2提供了區域性校驗方法:

2.validate+方法名()方法,例如方法input()的校驗方法就為:validateinput(),而update()的校驗方法也自然就是:validateupdate(),甚至是execute()方法也可以有自己的校驗方法:validateexecute()。

五、型別轉化失敗提示資訊與校驗失敗提示資訊:

由於action對前台的資訊處理是:首先對其做型別轉換,失敗了將型別轉換失敗提示資訊放入fielderror中;然後型別轉換失敗後的資訊依然會接受validate()方法對其做校驗資訊,如果校驗失敗了,方法又將校驗失敗資訊放入fieldderror中後。則前台將看到兩條資訊錯誤提示資訊。

例如:前台age屬性使用者給出了「abc」值,則系統會提示「年齡型別不正確」還會提示「年齡必須在1-150之間」。這種兩種提示顯然是不友好的。我們肯定更希望得到在型別不真確的情況下首先提示型別不正確,而在型別真確的前提下再提示校驗不通過的資訊。

針對這種問題,struts2的標籤顯然帶來了不方便,因為它不可避免的對型別進行著自動轉換操作,如何讓它不執行?給struts2標籤中增加乙個屬性:theme。中文意思是風格、主題。我們只需設定theme="******"。則struts2標籤功能就幾乎類似於html中對應標籤了。(但是記住,即使如此,struts2標籤還是有優勢的:比如它依然能實現回寫功能)

六、校驗框架

校驗框架是通過xml實現,程式設計師只需要編寫乙個xml檔案,按照乙個校驗dtd方式編寫。

當然校驗框架的策略是針對每乙個action的,也就是說,對應乙個action,你要對它做校驗就必須為它配置乙個xml,配置的這個xml是不可能為其他aciton做校驗的。

在校驗的xml檔案取名上也是有規定的:action對應的名字+'-validation.xml'。例如registeraction對應的校驗配置檔名只能是:registeraction-validation.xml

值得注意的一點:struts2提供了硬編碼校驗和xml檔案校驗兩種校驗方式,如果程式設計師對乙個action同時用了這兩種校驗方式,則struts2會都進行校驗,其校驗的方式是先xml檔案校驗然後執行方法validate校驗。所以使用的時候應該確定一種方式進行校驗。

有關struts2的知識

struts2 框架有兩個核心的配置檔案,其中 struts.xml 檔案主要負責管理應用中 action 的對映,以及 action 包含的result 第一等。除此之外,struts2 框架還包含乙個 struts.properties 檔案,該檔案定義了 struts2 框架的大量屬性 也被稱...

Struts2基本知識

struts 2框架本身大致可以分為3個部分 核心控制器filterdispatcher 業務控制器action和使用者實現的企業業務邏輯元件。核心控制器filterdispatcher是 struts 2框架的基礎,包含了框架內部的控制流程和處理機制。業務控制器action和業務邏輯元件是需要使用...

struts2基礎知識

struts2是在webwork2的基礎上發展而來的,和struts1一樣,struts2也是屬於mvc框架,但是struts2不是struts1的公升級版,儘管在名字上面很讓人這麼覺得 struts2中的action是執行緒安全的,struts1的執行緒是執行緒不安全的 strust2的優點 1,...