【问题标题】:Struts Calling Action on page loadStruts 在页面加载时调用操作
【发布时间】:2014-03-25 20:36:49
【问题描述】:

我是 STRUTS 和此邮件列表的新手,所以请耐心等待。

我正在尝试的是在 jsp 加载时调用一个动作。 我想我需要一个 javasript 函数来调用一个动作和'onload' in 我的身体。

function callAction{

... calling myAction.do

}

<body onload="callAction();" ... >

有人可以帮我解决这个问题吗?

谢谢

【问题讨论】:

  • 拜托,你能告诉我们更多关于你需要什么的信息吗?此操作是导航到其他地方,还是下载您需要在 javascript 代码中使用的任何数据?
  • 我需要在每个页面加载时用我的数据库中的数据填充下拉列表现在我可以通过单击一个按钮来执行此操作,但我想在每个页面加载时执行此操作
  • 无论您需要什么,Vinoth 的答案都应该有效。如果您使用他的 ajax 示例,您应该可以将您的组合代码放入他的 success 函数中而不会出现问题。

标签: java jsp struts jsp-tags struts-1


【解决方案1】:

如果您想导航到另一个页面,您需要像这样调用您的操作,

function callAction() {
    window.location = "navigation.do?parameter=showNavigation";
}

否则如果你想调用同一个页面(不加载另一个页面),你需要像这样使用ajax。这里我使用了jQuery ajax

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
                                                                    </script>
<script type="text/javascript">
$(document).ready(function() {
    $.ajax({
        url : "navigation.do?parameter=showNavigation",
        type : "POST",
        success : function(data) {
            alert(data);
        }
    });
});
</script>

希望这会有所帮助。

【讨论】:

  • Vinoth,您的第一个解决方案工作正常,但我不明白的是,尽管它一遍又一遍地执行此操作!你知道为什么吗
  • 因为您编写了函数体 onload,这将调用您的函数(即移动到另一个页面)。它可能是递归的。您可以考虑第二种选择。
  • 否则,您只需在某个按钮 click 或下拉列表 change 事件上调用该函数。
  • 您需要在您的 javascript 标签内添加第二个脚本,并在您的 jsp 页面中导入 jQuery 库。
  • 你需要做那个逻辑。将您的列表设置为会话并将其转发到某个 jsp 页面。将您的列表值转换为 &lt;option&gt; 格式。这将作为数据获得成功。将该数据填充到下拉列表中。
【解决方案2】:

@user3333294:你也可以通过以下方式进行:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
    <head>
        <script type="text/javascript">
            function submitPage(){
                document.forms[0].action = "navigation.do?parameter=showNavigation";
                document.forms[0].submit();
            }
        </script>
    </head>
    <body id="mainBody">
        <form method="post" onload="submitPage()">
            ...
        </form>
    </body>
</html>

【讨论】:

  • @bansaal:您的解决方案运行良好,但它也会造成无限循环
猜你喜欢
  • 2018-05-21
  • 1970-01-01
  • 2016-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-02
相关资源
最近更新 更多