2013-11-01 80 views
0

我在struts 2(struts2-core-2.0.11.jar)中創建了一個選項卡式窗格。struts2 dynamic tabbed panel Action not getting called

<%@ taglib prefix="s" uri="/struts-tags" %> 
    <html> 
     <head> 
     <s:head theme="ajax" debug="true"/> 
     </head> 

     <body> 

     <s:tabbedPanel id="test" > 

     <s:div id="one" label="Tab 1" theme="ajax"> 
      First Tab 
     </s:div> 

     <s:div id="two" label="Tab 2" theme="ajax" href="/testAction.action"> 
     <s:form name="second" > 
      second Tab 
     </s:form> 
     </s:div> 

     <s:div id="three" label="Tab 3" theme="ajax"> 
     3rd Tab 
     </s:div> 
    </s:tabbedPanel> 
     </body> 
</html> 

我需要的是單擊選項卡2 testAction被調用,它是在struts.xml文件中定義的。 作爲此操作的結果,home.jsp頁面應設置在Tab2中。 Tab2數據來自數據庫,因此點擊此選項卡操作類應該被調用。

<struts> 
    <include file="struts-default.xml"/> 
    <package name="a" extends="struts-default"> 
     <action name="resultAction" class="com.test.LogingEx"> 
      <result name="success">/success.jsp</result> 
      <result name="error">/error.jsp</result>  
     </action> 

     <action name="testAction" class="com.test.TestAction"> 
      <result name="success">/home.jsp</result> 

     </action> 

    </package> 
</struts> 

但在片2 錯誤加載 '/testAction.action'(404未找到)是越來越顯示。 TestAction類不會在單擊tab2時被調用。

我的要求是單擊每個選項卡上的相應操作類應該被調用,並且jsp映射到struts.xml文件應該顯示在各自的選項卡窗格上。

請幫我解決這個問題。 Appriciate如果你能提供struts2選項卡窗格簡單示例顯示上面的場景。

在此先感謝。

+0

使用''標籤。你能升級S2版本並使用struts2-jquery-plugin嗎? –

回答

1

以下代碼調用操作類testAction和testAction2。唯一的是我需要將我的罐子升級到以下。在調用映射到操作類的動作類jsp後,將顯示在相應的選項卡式面板中。

公地文件上傳-1.2.1.jar, 共享記錄-1.0.4.jar, freemarker的-2.3.8.jar, OGNL-2.6.11.jar, Struts2的核心-2.1。 8.1.jar, Struts2的,jQuery的插件-3.6.1.jar和 XWork的核心 - 2.1.6.jar

<%@ taglib prefix="s" uri="/struts-tags"%> 
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%> 
<html> 
    <head> 
    <sj:head /> 
    </head> 
    <body> 
    <s:url var="remoteurl1" action="testAction.action"/> 
    <s:url var="remoteurl2" action="testAction2.action"/> 

    <sj:tabbedpanel id="remotetabs" selectedTab="1" show="true" hide="'fade'" collapsible="true" sortable="true"> 
     <sj:tab id="tab1" href="%{remoteurl1}" label="Remote Tab One"/> 
     <sj:tab id="tab2" href="%{remoteurl2}" label="Remote Tab Two"/> 
    </sj:tabbedpanel> 
    </body> 
</html> 
1

如果你想使用Ajax,您可以使用Struts2 Jquery Plugin

Struts2 Jquery Tabbed Panel Examples

如果想解決目前的情況,那麼,很明顯,這一行動沒有找到,這意味着url is wrong 。您可能需要查找命名空間&其他路徑錯誤。

+0

是的,它按照您給定的選項卡式面板示例工作。爲此,我需要修改jar文件。 – Prakash

+0

但是上面的代碼描述了下面的代碼,爲什麼它沒有被調用。 Prakash

+0

我已經明確檢查了jsp文件中的以下代碼。該行動被稱爲 Please click here. Prakash