国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java的Struts框架中<results>標簽的使用方法

2019-11-26 14:48:57
字體:
來源:轉載
供稿:網友

<results>標簽在Struts2的MVC框架的視圖中所扮演的角色。動作是負責執行業務邏輯。執行業務邏輯后,接下來的步驟是使用<results>標簽顯示的視圖。

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

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

但是,Struts2 不配合使用JSP作為視圖技術。畢竟MVC范例的整個目的是保持獨立的層,高度可配置的。例如,對于一個Web2.0的客戶端,可能希望返回XML或JSON作為輸出。在這種情況下,可以創建一個新的結果類型為XML或JSON和實現這一目標。

Struts的一些預定義的結果類型,無論我們已經看到了,這是默認的結果類型,它是用來調度調度到JSP頁面。 Struts 允許使用其它標記語言的技術呈現的結果和流行的選擇,包括 Velocity, Freemaker, XSLT 和Tiles.

分發結果類型:
調度程序的結果類型是缺省類型,并使用,如果沒有其他的結果類型被指定。它被用來轉發到一個servlet,JSP,HTML頁面,等等,在服務器上。它使用RequestDispatcher.forward()方法。

在我們前面的例子中,我們看到了“shorthand”的版本,在那里我們提供了身體的結果標簽 JSP路徑。

<result name="success">  /HelloWorld.jsp</result>

我們也可以指定JSP文件中使用一個<param name="location">的標簽內<result...>的元素如下:

<result name="success" type="dispatcher">  <param name="location">   /HelloWorld.jsp  </param ></result>

我們還可以提供一個分析參數,默認為true。解析參數位置參數決定是否將被解析為OGNL表達式。

FreeMaker結果類型:
在這個例子中,我們將看到我們如何使用FreeMaker作為視圖技術。 freemaker是一種流行的模板引擎,用于使用預定義的模板來生成輸出。讓我們Freemaker模板創建一個文件稱為hello.fm以下內容:

Hello World ${name}

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

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"><struts>  <constant name="struts.devMode" value="true" />  <package name="helloworld" extends="struts-default">   <action name="hello"      class="com.yiibai.struts2.HelloWorldAction"     method="execute">     <result name="success" type="freemarker">      <param name="location">/hello.fm</param>     </result>   </action>     </package></struts>

讓我們使用前面的 HelloWorldAction.java,HelloWorldAction.jsp和index.jsp文件。現在右鍵點擊項目名稱,并單擊Export > WAR File創建一個WAR文件。然后部署這個WAR在Tomcat的webapps目錄下。最后,啟動Tomcat服務器和嘗試訪問URL http://localhost:8080/HelloWorldStruts2/index.jsp。這會給出以下畫面:

20151126154648843.jpg (560×288)

輸入一個值“Struts2”,并提交頁面。應該看到翻頁

20151126154710714.jpg (560×254)

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

重定向結果類型:
重定向的結果類型,調用的是標準response.sendRedirect() 方法,使瀏覽器建立一個新的請求發送到給定的位置。

我們可以提供無論是在體內的<result...>元素或作為一個<param name="location">的元素的位置。還支持重定向解析參數。下面是一個例子使用XML配置:

<action name="hello"   class="com.yiibai.struts2.HelloWorldAction"  method="execute">  <result name="success" type="redirect">    <param name="location">     /NewWorld.jsp   </param >  </result></action>

因此,只要修改struts.xml文件,定義如上所述重定向類型,并創建一個新的文件,在那里會被重定向 Hello時動作將返回成功到NewWorld.jpg。也可以checkStruts2 重定向操作的例子,為了更好的理解。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳新县| 望谟县| 澳门| 延安市| 松滋市| 颍上县| 屏南县| 三江| 安福县| 凤庆县| 莲花县| 福鼎市| 屯昌县| 尼玛县| 安泽县| 天长市| 平江县| 五华县| 丹巴县| 桓台县| 泾阳县| 濮阳市| 东辽县| 博客| 平阴县| 灵川县| 滕州市| 连江县| 罗定市| 柳江县| 阳东县| 宿州市| 绥中县| 安图县| 陇南市| 平山县| 新和县| 丽江市| 江山市| 扶绥县| 精河县|