Struts2 結果和結果型別

2022-02-21 20:05:05 字數 4101 閱讀 4519

正如前面提到的,標籤在struts2的mvc框架的檢視中所扮演的角色。動作是負責執行業務邏輯。執行業務邏輯後,接下來的步驟是使用標籤顯示的檢視。 

經常有一些附帶導航規則的結果。例如,如果在操作方法是對使用者進行驗證,有三種可能的結果。 (一)成功登入;(二)不成功的登入,使用者名稱或密碼錯誤;(三)帳戶鎖定。

在這種情況下的動作方法將被配置呈現的結果有三種可能的結果字串和三個不同的看法。我們已經看到在前面的例子。

但是,struts2 不配合使用jsp作為檢視技術。畢竟mvc範例的整個目的是保持獨立的層,高度可配置的。例如,對於乙個web2.0的客戶端,可能希望返回xml或json作為輸出。在這種情況下,可以建立乙個新的結果型別為xml或json和實現這一目標。

struts的一些預定義的結果型別,無論我們已經看到了,這是預設的結果型別,它是用來排程排程到jsp頁面。 struts 允許使用其它標記語言的技術呈現的結果和流行的選擇,包括 velocity, freemaker, xslt 和tiles.

排程程式的結果型別是預設型別,並使用,如果沒有其他的結果型別被指定。它被用來**到乙個servlet,jsp,html頁面,等等,在伺服器上。它使用requestdispatcher.forward()方法。

在我們前面的例子中,我們看到了「shorthand」的版本,在那裡我們提供了身體的結果標籤 jsp路徑。

name="success">/helloworld.jsp

我們也可以指定jsp檔案中使用乙個的標籤內的元素如下:

name="success"type="dispatcher">name="location">/helloworld.jsp

>

我們還可以提供乙個分析引數,預設為true。解析引數位置引數決定是否將被解析為ognl表示式。

在這個例子中,我們將看到我們如何使用freemaker作為檢視技術。 freemaker是一種流行的模板引擎,用於使用預定義的模板來生成輸出。讓我們freemaker模板建立乙個檔案稱為hello.fm以下內容:

helloworld$

在這裡,上述檔案是乙個模板的名字是從外面使用已定義的動作,將傳遞乙個引數置。會保持這個檔案在classpath中。接下來,讓我們修改struts.xml中指定結果如下:

<?xml version="1.0"encoding="utf-8"?>name="struts.devmode"value="true"/>name="helloworld"extends="struts-default">name="hello"class="com.yiibai.struts2.helloworldaction"method="execute">name="success"type="freemarker">name="location">/hello.fm

輸入乙個值「struts2」,並提交頁面。應該看到翻頁

正如看到,這是完全一樣的jsp檢視,但我們是不依賴於使用jsp作為檢視技術。在這個例子中,我們已經使用freemaker。

重定向的結果型別,呼叫的是標準response.sendredirect() 方法,使瀏覽器建立乙個新的請求傳送到給定的位置。

我們可以提供無論是在體內的元素或作為乙個的元素的位置。還支援重定向解析引數。下面是乙個例子使用xml配置:

name="hello"class="com.yiibai.struts2.helloworldaction"method="execute">name="success"type="redirect">name="location">/newworld.jsp

>

因此,只要修改struts.xml檔案,定義如上所述重定向型別,並建立乙個新的檔案,在那裡會被重定向 hello時動作將返回成功到newworld.jpg。也可以checkstruts2 重定向操作的例子,為了更好的理解。

正如前面提到的,標籤在struts2的mvc框架的檢視中所扮演的角色。動作是負責執行業務邏輯。執行業務邏輯後,接下來的步驟是使用標籤顯示的檢視。 

經常有一些附帶導航規則的結果。例如,如果在操作方法是對使用者進行驗證,有三種可能的結果。 (一)成功登入;(二)不成功的登入,使用者名稱或密碼錯誤;(三)帳戶鎖定。

在這種情況下的動作方法將被配置呈現的結果有三種可能的結果字串和三個不同的看法。我們已經看到在前面的例子。

但是,struts2 不配合使用jsp作為檢視技術。畢竟mvc範例的整個目的是保持獨立的層,高度可配置的。例如,對於乙個web2.0的客戶端,可能希望返回xml或json作為輸出。在這種情況下,可以建立乙個新的結果型別為xml或json和實現這一目標。

struts的一些預定義的結果型別,無論我們已經看到了,這是預設的結果型別,它是用來排程排程到jsp頁面。 struts 允許使用其它標記語言的技術呈現的結果和流行的選擇,包括 velocity, freemaker, xslt 和tiles.

排程程式的結果型別是預設型別,並使用,如果沒有其他的結果型別被指定。它被用來**到乙個servlet,jsp,html頁面,等等,在伺服器上。它使用requestdispatcher.forward()方法。

在我們前面的例子中,我們看到了「shorthand」的版本,在那裡我們提供了身體的結果標籤 jsp路徑。

name="success">/helloworld.jsp

我們也可以指定jsp檔案中使用乙個的標籤內的元素如下:

name="success"type="dispatcher">name="location">/helloworld.jsp

>

我們還可以提供乙個分析引數,預設為true。解析引數位置引數決定是否將被解析為ognl表示式。

在這個例子中,我們將看到我們如何使用freemaker作為檢視技術。 freemaker是一種流行的模板引擎,用於使用預定義的模板來生成輸出。讓我們freemaker模板建立乙個檔案稱為hello.fm以下內容:

helloworld$

在這裡,上述檔案是乙個模板的名字是從外面使用已定義的動作,將傳遞乙個引數置。會保持這個檔案在classpath中。接下來,讓我們修改struts.xml中指定結果如下:

<?xml version="1.0"encoding="utf-8"?>name="struts.devmode"value="true"/>name="helloworld"extends="struts-default">name="hello"class="com.yiibai.struts2.helloworldaction"method="execute">name="success"type="freemarker">name="location">/hello.fm

輸入乙個值「struts2」,並提交頁面。應該看到翻頁

正如看到,這是完全一樣的jsp檢視,但我們是不依賴於使用jsp作為檢視技術。在這個例子中,我們已經使用freemaker。

重定向的結果型別,呼叫的是標準response.sendredirect() 方法,使瀏覽器建立乙個新的請求傳送到給定的位置。

我們可以提供無論是在體內的元素或作為乙個的元素的位置。還支援重定向解析引數。下面是乙個例子使用xml配置:

name="hello"class="com.yiibai.struts2.helloworldaction"method="execute">name="success"type="redirect">name="location">/newworld.jsp

>

因此,只要修改struts.xml檔案,定義如上所述重定向型別,並建立乙個新的檔案,在那裡會被重定向 hello時動作將返回成功到newworld.jpg。也可以checkstruts2 重定向操作的例子,為了更好的理解。

struts2結果型別

在struts2 core 2.3.1.1.jar struts de t.xml配置檔案下可以看到 省略 chain 兩個action之間的 dispatcher action 到jsp freemarker 處理freemarker用的 httpheader 處理特殊http redirect ...

Struts2結果型別

struts2結果型別 1.dispatcher 將當前請求request和response移交給另乙個servlet,預設型別 2.redirect 重定向 關閉當前請求,改變瀏覽器指向的url,不移交request和response secure adminportfolio.action 末尾...

struts2結果型別

struts2結果型別 結果型別 描述 前request域屬性是否丟失 1dispatcher 用於與jsp整合的結果型別。預設結果型別。2chain action鏈式處理結果型別。前乙個action設定的request域屬性不丟失。不丟失3 redirect 用於直接跳轉到其他頁面url的結果型別...