<welcome-file>index.jsp</welcome-file>
一般首页进的是静态页面
如果需要首页是动态的页面 就需要先进action访问数据 再回到首页显示
因为 welcome-file 必须是实际存在的文件,不能是action或者servlet路径
如果直接把index.jsp改成action 会出现404
<welcome-file>index.action</welcome-file>直接设置action,404和struts2中的解决方案
解决方法有三种 我最经常用第一种
第一种
因为web.xml中 默认是
<welcome-file>index.jsp</welcome-file>在空白的index.jsp中使用META重定向。
操作:<META HTTP-EQUIV="Refresh" CONTENT="0;URL=max/HelloWorld.action">
其中,
content="1 是时间控制,表示1秒后自动跳转到要跳转的页面.
content="0 表示打开该页后立即跳转到你要跳转的页面.
url 是要跳转的路径
完整例子
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ include file="/include/header.jsp"%>
</head>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=query/gseList">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
</body>
</html>
struts文件 配置action
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<package name="query" extends="json-default" namespace="/query">
<action name="gseList" class="GseListAction">
<result name="success">/list.jsp</result>
</action>
</package>
</struts>
第二种
web.xml中改成
<welcome-file>index.action</welcome-file>
在WebRoot下新建一个index.action空文件
第三种
因为 welcome-file 必须是实际存在的文件,不能是action或者servlet路径你可以设置一个 比如 <welcome-file>goindex.jsp</welcome-file>,然后 goindex.jsp 写 <jsp:forward page="index.action" /> 就行了。意思就是借助一个jsp页面来转发请求进入action。
因为struts2采用过滤器的方式处理请求,默认情况时监控url地址的变化
必须如下操作:
第一步:
web.xml中修改
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern >/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
第二步:
web.xml中添加
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
第三步:
首页跳转语句
index.jsp内容如下:
<jsp:forward page="HelloWorld.action"></jsp:forward>