在主(索引)页面访问网站时,必须加载通过操作获得的信息。我一直在做一些研究,但我不知道该怎么做。有人能给我一个提示吗?
我所看到的只是通过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