Java的Struts框架中<results>標簽的應用辦法。本站提示廣大學習愛好者:(Java的Struts框架中<results>標簽的應用辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Java的Struts框架中<results>標簽的應用辦法正文
<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。這會給出以下畫面:
輸出一個值“Struts2”,並提交頁面。應當看到翻頁
正如看到,這是完整一樣的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 重定向操作的例子,為了更好的懂得。