tczengjin

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

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

          意思是說沒定義input的跳轉(zhuǎn)結(jié)果.

              @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,但是實際運行中出現(xiàn)了錯誤(拋了異常),Action并沒有返回SUCCESS而是返回INPUT(Action出現(xiàn)錯誤時默認的返回值),而我的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 爪哇園主 閱讀(3353) 評論(3)  編輯  收藏

          Feedback

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

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

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

            回復  更多評論
            


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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 大渡口区| 海原县| 重庆市| 阿克陶县| 津南区| 永嘉县| 广南县| 杭州市| 资兴市| 兰考县| 通州区| 凤山县| 皋兰县| 礼泉县| 德阳市| 清远市| 嵊泗县| 常州市| 珲春市| 杭锦后旗| 通辽市| 高阳县| 文安县| 温宿县| 德保县| 咸宁市| 海伦市| 洛川县| 林甸县| 黄龙县| 沛县| 壤塘县| 廊坊市| 利辛县| 措勤县| 金坛市| 休宁县| 靖江市| 河池市| 揭东县| 博罗县|