【问题标题】:Call struts2 action method on page load在页面加载时调用 struts2 操作方法
【发布时间】:2018-03-26 11:05:00
【问题描述】:

如何在页面加载时调用 action 方法? 下面是我的操作方法

    public String **getlist**() {
              myList=dao.getList();
                return "success" ;
      }

我想通过在页面加载时执行 getList 来加载 index.jsp 页面上的数据。

我该怎么做? web.xml 中的 result type 是什么。最好你建议web.xml的内容类型

【问题讨论】:

  • 我不明白这个问题。该操作在页面加载期间被命中。动作属性在关联的 JSP 中可用。你到底在问什么?
  • 嗨,戴夫,我想在页面加载时执行操作,而不是在单击任何按钮或链接时执行操作。
  • 真正的问题是什么?大概您已经在页面加载时调用了一个动作:所有页面都经过一个动作开始。这就是它的工作原理。
  • 一般动作方法在点击任意按钮时被调用。我有 index.jsp 页面,当访问 url 时应该在该页面上加载用户列表。希望你现在明白这个问题。
  • 如果您的应用程序在没有执行操作的情况下访问 JSP 页面,我认为您使用的框架是错误的。让着陆页执行操作并解决问题 - 我不明白这个问题。

标签: javascript java struts2 action pageload


【解决方案1】:

在 index.jsp 中指定一个 javascript 部分。然后在此部分提交表单,如 form1.submit();这里 form1 是表单的 id。在 javascript 部分的 JQuery 的 document.ready 方法中编写此代码。这将在页面加载时提交表单,并在此表单中指定操作,我们将调用并点击页面加载操作的 getList()。

【讨论】:

  • 我应该提到什么结果页面和类型?
  • 如果你没有使用tiles那么结果页面将会是index.jsp并且在type中你必须提到jsp。
  • 它将进入无限循环。因为下次在页面加载时它会再次执行 form.submit();
  • 如果 index.jsp 是应用程序的第一页。然后,您可以在页面加载时进行 ajax 调用来调用该方法。这种情况下页面不会刷新,也不会出现死循环。
  • 是的,这就是我正在尝试的。当我处于 ajax 学习阶段时,你能提供一段 ajax 代码吗?还建议 web.xml 中的结果部分。
【解决方案2】:
$(document).ready(function(){
 $(this).processRequest({
        url: url
    });
});
<action name="actionName"   class="fullpathofClass" method="**getlist**">
        <result name="success">jsp loaded</result>
</action>

在 java 脚本部分添加文档 .ready 函数并将如下指定的 xml 配置应用于获取结果

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 2016-06-26
    相关资源
    最近更新 更多