<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                /klass.Save通過我們設置的動態路由,將執行com.mengyunzhi.javaee.action.klass.SaveAction中的execute方法。 > 思索:為什么我們不直接觸發KlassAction中的save方法呢?明顯的,為每一個action單獨的寫一個類,會增加代碼編寫的工作量。 # 新建觸發器 ``` package com.mengyunzhi.javaee.action.klass; import com.mengyunzhi.javaee.action.Action; import com.mengyunzhi.javaee.entity.Teacher; import com.mengyunzhi.javaee.server.TeacherServer; public class SaveAction extends Action{ /** * */ private static final long serialVersionUID = 1L; private String name; private Teacher teacher; private Long teacherId; public String getName() { return name; } public void setName(String name) { this.name = name; } public void setTeacherId(Long teacherId) { this.teacherId = teacherId; this.setTeacher(TeacherServer.getTeacherById(this.teacherId)); } public String execute() { return SUCCESS; } public Teacher getTeacher() { return teacher; } public void setTeacher(Teacher teacher) { this.teacher = teacher; } } ``` ## 測試 ![https://box.kancloud.cn/b48dbf35cedea8fcab11ec8bf8e3d37c_950x904.png](https://box.kancloud.cn/b48dbf35cedea8fcab11ec8bf8e3d37c_950x904.png) ## 加入注解完成驗證 ``` @RequiredStringValidator(message = "名稱不能為空") @StringLengthFieldValidator(minLength = "2", maxLength = "8", trim = true, message = "名稱必須介于2-8之間") public void setName(String name) { this.name = name; } ``` ## 再測試 ![https://box.kancloud.cn/47bc497ffd835932df4565875d91f50a_1856x862.png](https://box.kancloud.cn/47bc497ffd835932df4565875d91f50a_1856x862.png) 如果你對這個錯誤比較熟悉的話,說明前面我們學的足夠扎實。如果你還不認識這個錯誤,那么你可能有必要去復習一下前面章節的內容。這個錯誤說,我們在配置文件中,沒有為這個類的input結果進行定義。 按提示修改struts.xml ``` <!-- 返回類型設置為json --> <result name="success" type="json"> <!-- 數據返回時,是否包括父類的get方法 --> <param name="ignoreHierarchy">false</param> </result> <result name="input" type="json"> <!-- 數據返回時,是否包括父類的get方法 --> <param name="ignoreHierarchy">false</param> </result> ``` 重啟tomcat ![https://box.kancloud.cn/28f537a0c158cd8a0665fda42ad2ad48_880x1128.png](https://box.kancloud.cn/28f537a0c158cd8a0665fda42ad2ad48_880x1128.png) 錯誤消失,并且我們獲取了驗證信息報錯的信息。 <hr /> 以前,我們一直在返回正確的信息,即返回值為"SUCCESS", struts接收到"success"后,會按配置文件中的result進行處理。本次,我們需要對字段進行驗證,加入了驗證的注解,如果驗證不通過,注解將自動返回一個"INPUT", 然后struts按照配置文件的result中的input進行處理。 是的,有了注解驗證后,程序被提前返回了。 <hr /> ## 增加對teacherId的判斷 ``` public void setTeacherId(Long teacherId) { // 如果值為200,則增加一個錯誤信息 if(teacherId == 200) { this.addFieldError("teacherId", "傳入的teacherId無效"); } this.teacherId = teacherId; // 獲取教師實體 this.setTeacher(TeacherServer.getTeacherById(this.teacherId)); } ``` > 在實際的開發中,我們將teacherId是否合法的判斷放在Server中來處理,然后在C層中統一接收產生的異常。 ## 測試 兩個字段全部不符合條件 ![https://box.kancloud.cn/868c387b5e03a1a63c6ed8eccb2cd329_1036x1076.png](https://box.kancloud.cn/868c387b5e03a1a63c6ed8eccb2cd329_1036x1076.png) 只有teacherId不符合條件 ![https://box.kancloud.cn/5738c7498bed7b137f609c8b2318b207_1098x1126.png](https://box.kancloud.cn/5738c7498bed7b137f609c8b2318b207_1098x1126.png) 全部符合條件 ![https://box.kancloud.cn/dd13ea951fadd6441c388185ad241914_1172x1306.png](https://box.kancloud.cn/dd13ea951fadd6441c388185ad241914_1172x1306.png) 至此,我們后臺為前臺準備好了測試用例。后臺人員可以安心的切換到自己的開發分支,卻完成最終正確的代碼開發了。 <hr /> 如果你的postman沒有返回你想要的信息,并且確確認代碼無誤的話,那么,請嘗試使用'x-www-form-urlencoded'方法。 ![https://box.kancloud.cn/ed7025b3a95fe5c2cd40cf3c6e3fde97_828x206.png](https://box.kancloud.cn/ed7025b3a95fe5c2cd40cf3c6e3fde97_828x206.png) <hr /> 而前臺人員呢,由于有了前期的后臺支撐。在進行資源請求時,也不需要自己去寫一些返回示例了。當前臺和后臺人員在開發中,都能夠充分的站在對方的角度上去思考問題,能夠多想想自己前期什么什么工作能夠更多的配合對方的時候,團隊精神就被我們詮釋了。 > git checkout -f step12.3.2
                  <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>

                              哎呀哎呀视频在线观看