0

我在struts 2(struts2-core-2.0.11.jar)中创建了一个选项卡式窗格,如下所示。

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

我需要的是单击在 struts.xml 文件中定义的 Tab 2 testAction 被调用。作为此操作的结果, 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 Error loading '/testAction.action' (404 Not Found)上显示。单击 tab2 时不会调用 TestAction 类。

我的要求是单击每个选项卡,相应的操作类应该被调用,并且在 struts.xml 文件中映射的 jsp 应该显示在相应的选项卡式窗格中。

请帮助我。如果您可以提供显示上述场景的 struts2 选项卡式窗格简单示例,则表示赞赏。

提前致谢。

4

2 回答 2

1

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

Struts2 Jquery 选项卡式面板示例

如果要解决当前的情况,那么很明显,没有找到该动作,这意味着url is wrong. 您可能想要查找命名空间和其他路径错误。

于 2013-11-02T13:20:02.110 回答
1

以下代码调用动作类 testAction 和 testAction2。唯一的事情是我需要将我的罐子升级到以下。调用动作类后,映射到动作类的jsp 将显示在相应的选项卡式面板中。

commons-fileupload-1.2.1.jar、commons-logging-1.0.4.jar、freemarker-2.3.8.jar、ognl-2.6.11.jar、struts2-core-2.1.8.1.jar、struts2-jquery- plugin-3.6.1.jar 和 xwork-core-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>
于 2013-11-03T11:45:01.350 回答