如何执行需要在主打开JSP中执行的struts2操作

How can you execute struts2 actions that need to be in the main opening JSP

本文关键字:执行 JSP struts2 操作 何执行      更新时间:2023-09-26

在主(索引)页面访问网站时,必须加载通过操作获得的信息。我一直在做一些研究,但我不知道该怎么做。有人能给我一个提示吗?

我所看到的只是通过JavaScript。如果有任何其他方法可以做到这一点,如果你能解释一下,我将不胜感激。

要启动应用程序,而不是像这样直接指向JSP:

http://localhost:8080/myapp/index.jsp

您可以指向一个在索引JSP上转发的操作。

http://localhost:8080/myapp/

Web.xml

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>

Index.html(放在webContent下,这只是一个例子):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<META HTTP-EQUIV="Refresh" CONTENT="0;URL='start.do'">
<TITLE>My application</TITLE>
</HEAD>
</HTML>

struts-config.xml

    <action name="start" class="com.myapp.startAction" method="init">
                <result name="success">/main.jsp</result>
    </action>

它也可以是其他方法,特别是使用struts2(例如,使用index.jsp而不是@coding_idiot建议的index.html)。但这应该奏效。

您可以在web.xml文件中使用Struts2操作。按照以下步骤

<welcome-file-list>
  <welcome-file>index</welcome-file>
</welcome-file-list>

在我的web应用程序文件夹中创建一个名为index的空文件,并最终将以下条目放置在我的struts.xml文件中

<action name="index" class="welcomeAction">
     <result>/ab.jsp</result>
 </action>

因此,在这种情况下,当您访问此URL www.myapp.com/myapp时,它将调用Struts2的索引操作,您将能够为欢迎页面执行所有init工作。

这就是我所做的:

index.jsp

<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" language="java"%>
<% response.sendRedirect("index"); %>

假设您在struts.xml 中定义了一个index命名操作

假设我们有这样的东西:

操作:CalcAction.Action

jsp:Calculator.jsp

在JSP页面的head标记中添加此行例如:

<meta http-equiv="Content-Type" CONTENT="text/html; URL='CalcAction.action'"/>

web.xml:

<welcome-file-list>
   <welcome-file>/Calculator.jsp</welcome-file>
</welcome-file-list>

@kloe的答案也解决了这个问题,但它会导致你的页面每秒刷新一次,而这反过来又会导致每秒调用你的页面的开销。无意冒犯!干杯

在URL映射中更好地使用普通Servlet映射的index.jsp,它将起作用。

否则,页面加载中的Javascript是另一种选择。

另一个选项是创建index.jsp,然后使用<s:action name="my-welcome-action" executeResult="true"/>标记在jsp中呈现操作的输出。这将避免任何重定向代码。

https://struts.apache.org/docs/action.html