1. 程式人生 > >struts.xml中的package介紹

struts.xml中的package介紹

目錄結構


web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name>
  
  <!-- 配置過濾器 -->
   <filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>struts2訪問的package</title>
  </head>
  
  <body>
    <a href="${pageContext.request.contextPath }/a/b/good

">struts2的案例</a><br/>
  </body>
</html>

struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- dtd約束 -->
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 使用constant元素覆蓋struts2的配置 -->
<!-- 開起開發模式 -->
<constant name="struts.devMove" value="true"></constant>
<!-- 覆蓋預設的副檔名,改成以.do為字尾的-->
<!-- <constant name="struts.action.extension" value="do"></constant> -->
<package name="p1" extends="struts-default" ></package>
<package name="p2" extends="struts-default" namespace="/a/b">
<action name="good" class="cn.mumu.action.HelloAction.HelloAction" method="aimumu">
<result name="success">/success.jsp</result>
</action>
</package>


</struts>

HelloAction.java

package cn.mumu.action.HelloAction;
public class HelloAction {
public String aimumu(){
System.out.println("我相信你一定會成功的!");
return "success";
}
}

packege中的namespace詳解

namespace的預設值:

a.不寫該屬性

b.寫了該屬性,取值是一個" ".

注意:預設值不是/

動作類的搜尋順序:


即:

<a href="${pageContext.request.contextPath }/a/b/good">struts2的案例</a><br/>

先會/a/b,

如果<a href="${pageContext.request.contextPath }/a/b/c/good">struts2的案例</a><br/>

這樣的話,會先去找/a/b/c,有就執行,沒有就找/a/b