tczengjin

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            2 Posts :: 0 Stories :: 9 Comments :: 0 Trackbacks

          問題:No result defined for action cn.bbs.nhpop.web.action.ReplyTopic Action and result input 錯誤

          意思是說沒定義input的跳轉結果.

              @Override
              
          public String execute() throws Exception {
                  topic 
          = topicService.getTopic(topicId);
                  reply.setTopic(topic);
                  replyService.replyTopic(reply);
                  
          return this.SUCCESS;
              }

          原因:我的cn.bbs.nhpop.web.action.ReplyTopic Action execute方法返回SUCCESS,但是實際運行中出現了錯誤(拋了異常),Action并沒有返回SUCCESS而是返回INPUT(Action出現錯誤時默認的返回值),而我的struts.xml配置文件中并沒有定義與INPUT對應的Result

                  <action name="replyTopic"
                      class
          ="cn.bbs.nhpop.web.action.ReplyTopic">
                      
          <result name="success" type="chain">
                          
          <param name="actionName">listTopicsDetails</param>
                      
          </result>
                  
          </action>

          解決方法:你可以添加一個與INPUT對應的Result或者解決Action方法實際運行中的異常。

          我的Action到底拋了個什么異常呢?

                  <s:form action="replyTopic">
                      
          <s:hidden name="topicId" value="%{topicId}"></s:hidden>
          <%--            <s:param name="topicId" value="%{topicId}"></s:param>--%>

          </s:form>
          這是我的reply.jsp,開始我使用<s:param></s:param>傳topicId,想當然的認為可以與<s:form></s:form>合用傳參,導致replyTopic Action無法獲取到topicId的值
              @Override
              
          public String execute() throws Exception {
                  topic 
          = topicService.getTopic(topicId);
                  reply.setTopic(topic);
                  replyService.replyTopic(reply);
                  
          return this.SUCCESS;
              }
          topic為null拋異常。(<s:url action=""><s:param></s:param></s:url>是可以這樣傳參的,但與<s:form></s:form>不行)
          后來用<s:hidden></s:hidden>代替解決。另外
          <s:hidden name="topicId" value="topicId"></s:hidden>
          value="%{topicId}"切不可省去%{}否則Action中的topicId的值為字符串為"topicId"而不是我希望的int值1,%{topicId}相當于
          <s:property value="topicId"/>
          你可以使用%{}或嵌套<s:property>標簽。struts2標簽的屬性可以接受一個字符串的值的時候請大家尤其注意,必須使用%{} 或<s:property>才會是你想要的值。比如:
          <s:hidden name="topicId" value="%{topicId}"></s:hidden>


                      
          <s:url id="toReply" action="toReply">
                          
          <s:param name="topicId" value="topicId"></s:param>
                      
          </s:url>

                      
          <tr>
                          
          <td height="18" colspan="2">
                              
          &nbsp;
                              
          <s:a href="%{toReply}">回復 </s:a> &nbsp;
                          
          </td>
                      
          </tr>
          我怎么感覺struts2的文檔把%{}作用說反了,哪為高手能讀讀文檔看是否我理解錯了沒struts2 %{}使用方法
          posted on 2007-12-21 00:54 爪哇園主 閱讀(3350) 評論(3)  編輯  收藏

          Feedback

          # re: 我遇到的Struts2的幾個問題一 2007-12-21 18:01 黑靈
          %{}的意思是把其中的字符串作為ognl表達式.  回復  更多評論
            

          # re: 我遇到的Struts2的幾個問題一[未登錄] 2008-05-13 18:14 alex
          請教樓主:
          下面是我的代碼,可是取不到值,換成%{}是一樣沒結果,請問是什么原因,該怎么做?謝謝。
          <s:hidden name="staffID" value="#request.staffID"></s:hidden>  回復  更多評論
            

          # re: 我遇到的Struts2的幾個問題一 2009-01-14 16:33 wjl1174
          @alex
          #request.staffID==request.getAttribute("staffID");

            回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 西林县| 游戏| 梁平县| 抚宁县| 错那县| 新平| 库尔勒市| 松江区| 通河县| 桂东县| 龙游县| 新余市| 九台市| 东港市| 晋宁县| 息烽县| 崇明县| 嘉义县| 普宁市| 崇仁县| 富平县| 龙陵县| 台前县| 额济纳旗| 太和县| 青田县| 临武县| 务川| 吴桥县| 威海市| 甘孜县| 旅游| 澜沧| 怀仁县| 北宁市| 金山区| 黔南| 娄烦县| 平定县| 饶河县| 临猗县|