1. 程式人生 > >Java設定web專案訪問到action

Java設定web專案訪問到action

<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中 預設是

在空白的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>