You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

页面加载时调用Struts2 Action方法的实现及web.xml配置咨询

页面加载时调用Struts2 Action方法的实现方案

从你的getlist()方法写法来看,应该是用的Struts2框架吧?下面给你几种可行的实现方式,以及关于web.xml的配置建议:

一、触发getlist()的几种方式

1. 直接在JSP里用Struts2标签同步调用

这是最直接的方式,在index.jsp里嵌入<s:action>标签,页面加载时就会自动执行Action的方法:

<%@ taglib prefix="s" uri="/struts-tags" %>
<!-- 替换yourActionName为你在struts.xml里配置的Action名称 -->
<s:action name="yourActionName" method="getlist" executeResult="false"/>

<!-- 之后就能直接用myList数据了,比如遍历展示 -->
<s:iterator value="myList">
  <p><s:property value="你的实体属性名"/></p>
</s:iterator>
  • executeResult="false":如果不想让Action的返回结果(比如success对应的页面)覆盖当前的index.jsp,就设为false;要是想直接跳转到Action的结果页,就改成true。

2. 页面加载后用AJAX异步调用

如果不想阻塞页面渲染,或者需要动态更新数据,用JS在页面加载完成后发请求就行:

// 原生JS写法
window.addEventListener('load', function() {
  fetch('${pageContext.request.contextPath}/yourActionName!getlist.action')
    .then(res => res.json()) // 如果Action返回JSON的话用这个,返回HTML就用res.text()
    .then(data => {
      // 这里可以把数据渲染到页面上,比如插入到某个div里
      console.log('数据加载成功:', data);
    });
});

// jQuery写法(要是你项目里用了jQuery)
$(document).ready(function() {
  $.get('${pageContext.request.contextPath}/yourActionName!getlist.action', function(data) {
    // 处理返回的数据
  });
});

这种方式适合无刷新加载的场景,要是返回JSON的话,记得在struts.xml里给Action配置type="json"的result哦。

3. 让Action作为入口,跳转到index.jsp

调整访问逻辑,用户访问的不是index.jsp,而是Action的路径,Action先执行getlist()加载数据,再跳转到index.jsp:

  • 在struts.xml里配置Action:
<action name="loadIndex" class="你的Action全类名" method="getlist">
  <result name="success">/index.jsp</result>
</action>
  • 然后在web.xml里把默认欢迎页改成这个Action路径,这样用户访问根目录时就会先触发Action:
<welcome-file-list>
  <welcome-file>loadIndex.action</welcome-file-list>
</welcome-file-list>

二、关于web.xml的配置说明

顺便提一句:你说的“结果类型”是在struts.xml里配置的,不是web.xml。web.xml主要负责配置Struts2的核心过滤器和web应用的全局设置。

1. 必备的Struts2过滤器配置

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

  <!-- Struts2核心过滤器,必须配置 -->
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <!-- 可选:默认欢迎页配置 -->
  <welcome-file-list>
    <welcome-file>loadIndex.action</welcome-file-list>
  </welcome-file-list>
</web-app>

2. 页面内容类型建议

在index.jsp的顶部加上这句,避免中文乱码,同时明确页面类型:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

内容的提问来源于stack exchange,提问作者Ashok bhor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:44:08