2013-11-01 50 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