Java設定web專案訪問到action
因為 welcome-file 必須是實際存在的檔案,不能是action或者servlet路徑
如果直接把index.jsp改成action 會出現404
<welcome-file>index.action</welcome-file>直接設定action,404和struts2中的解決方案解決方法有三種 我最經常用第一種
第一種
因為web.xml中 預設是
在空白的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中改成
在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>