<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                在TP中,我們在控制器中,通常是這樣使用的。 ![https://box.kancloud.cn/2d757a781cf125497115e1524ee3b3ca_416x906.png](https://box.kancloud.cn/2d757a781cf125497115e1524ee3b3ca_416x906.png) 往往,我們將用戶認證、權限判斷等功能寫入HomeController中。 <hr /> Struts中,也是大同小異。在這里我們繼承的類為:com.opensymphony.xwork2.ActionSupport。 在TP中,框架默認為每個ACTION對應著類中的某個方法。通過前面的學習,我們在使用Struts時,默認將每個Action對應著類中的固定方法`execute()`。其實,這只是框架的使用習慣不同而已(更多的是由于對請求數據的處理方法不同)。TP也是可以將action與某個類中的固有方法對應起來的,而Struts同樣,也可以像TP那樣使用。 由于每個Action都對應一個類,所以使用Struts時,我們變成了這樣。 ![https://box.kancloud.cn/a182d9b0af31527629cf56282f8fba15_1438x806.png](https://box.kancloud.cn/a182d9b0af31527629cf56282f8fba15_1438x806.png) 沒錯,這與我們前面學過的TP是完全相同的。 此時,我們將用戶認證、權限判斷等一系列功能寫入到Action中。 考慮到CURD各個ACTION都是對教師進行的操作,所以存在一些共性,為了減少代碼的冗余,我們再加入一個TeacherAction類。 ![https://box.kancloud.cn/02031bfc0c363aff13789428e1c6466a_1416x1172.png](https://box.kancloud.cn/02031bfc0c363aff13789428e1c6466a_1416x1172.png) <hr /> 按上圖,進行代碼整理后,我們的目錄結構如下: ![https://box.kancloud.cn/2c4a60195ecac8b804d5317aa8b4a517_536x350.png](https://box.kancloud.cn/2c4a60195ecac8b804d5317aa8b4a517_536x350.png) > 由于我們對類名進行了修改,所以如果你發現struts提示找不到相關的類文件的話。應該能想到去修改struts.xml吧。 Action.java ``` package com.mengyunzhi.javaee.action; import com.opensymphony.xwork2.ActionSupport; public abstract class Action extends ActionSupport { /** * 用于類的序列化與反序列化,我們直接生成即可 */ private static final long serialVersionUID = 1L; } ``` 由于Action, 只用來被繼承,所以在此聲明為:abstract ,在UML類圖的中,該類的名字以斜體表示 . TeacherAction.java ``` package com.mengyunzhi.javaee.action.teacher; import com.mengyunzhi.javaee.action.Action; public class Teacher extends Action { /** * 用于類的序列化與反序列化,我們直接生成即可 */ private static final long serialVersionUID = 1L; } ``` <hr /> 閱讀官方文檔: 和查看其它的文檔一下,我們首先找到文件的位置: ![https://box.kancloud.cn/b21151923a4075864707bb0b77158fd1_826x190.png](https://box.kancloud.cn/b21151923a4075864707bb0b77158fd1_826x190.png) > 2.3的說明文檔有些問題,在這里,我們使用2.5的。 然后進入這個文件夾,運行`http-server`, ![https://box.kancloud.cn/ce9bcabf7ce207b23cefe8af3351c6dc_1326x334.png](https://box.kancloud.cn/ce9bcabf7ce207b23cefe8af3351c6dc_1326x334.png) 按提示打開我們的瀏覽器, 選擇`struts2-core-apidocs`,然后搜索ActionSupport ![https://box.kancloud.cn/6f6225529257de57e1207879ee73b8c0_1246x598.png](https://box.kancloud.cn/6f6225529257de57e1207879ee73b8c0_1246x598.png) 我們復制一些信息下來,簡單的看一下它的說明。 ``` // 包名 com.opensymphony.xwork2 // 類名 Class ActionSupport // 類型 java.lang.Object com.opensymphony.xwork2.ActionSupport // 實現的所有的接口 All Implemented Interfaces: // 下面這些名稱,都是接口名, 我們隨便在這個文字上點一下,還能看到接口的詳細描述信息 Action, ValidationAware, LocaleProvider, TextProvider, Validateable, Serializable // 已知的 子類(即:繼承了本類的類) Direct Known Subclasses: DefaultActionSupport // 對上面幾項信息的詳細說明 public class ActionSupport extends Object implements Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable // 對本類的簡單說明: Provides a default implementation for the most common actions. See the documentation for all the interfaces this class implements for more detailed information. ``` 繼承ActionSupport后,我們在需要返回字符串"success"的地方,可以寫為,也必須寫為SUCCESS了。 ``` return "success"; ``` 改寫為: ``` return SUCCESS; ``` 這是由于在 com.opensymphony.xwork2.Interface Action中,已經顯示的為我們聲明了幾個字段. ![https://box.kancloud.cn/f6482bcfd3c72070d3211a3ec1233030_1736x654.png](https://box.kancloud.cn/f6482bcfd3c72070d3211a3ec1233030_1736x654.png) > 官方文檔: [http://127.0.0.1:8081/struts2-core-apidocs/com/opensymphony/xwork2/ActionSupport.html](http://127.0.0.1:8081/struts2-core-apidocs/com/opensymphony/xwork2/ActionSupport.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看