目次
1. <include>
2, <constant>
3、<package>
1 を使用して構成されます。 Struts2

2、extends属性的详解
3、namespace的详解
1)如果使用命名空间则URL将改变
2)默认命名空间
3)指定根命名空间
4、<action>与<result>
1、<action>属性介绍
2、<result>属性介绍
通配符的使用" >
3、通配符的使用
4、访问Action方法的另一种实现方式
5、<exception-mapping>与<global-exception-mapping>
6、<default-class-ref>
7、<default-action-ref>
8、<default-interceptor-ref>
9、<interceptors>
10、<interceptor-ref>
11、<global-results>

struts.xmlの詳細な設定例

May 04, 2017 pm 03:53 PM

struts.xml は開発で最も使用されるファイルであり、Struts2 の最も重要な構成ファイルです。

struts.xml で一般的に使用されるタグをいくつか紹介します

1.

include タグを使用すると、struts.xml 構成ファイルを複数の構成ファイルに分割し、それらを struts.xml に追加できます。 タグを使用して他の構成ファイルを導入します。

たとえば、オンライン ショッピング プログラムでは、ユーザー構成、製品構成、注文構成を 3 つの構成ファイル user.xml、goods.xml、order.xml にそれぞれ配置し、これら 3 つの構成ファイルを配置できます。 struts.xml 内 はじめに:

struts.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<include file="user.xml"/>
	<include file="goods.xml"/>
	<include file="order.xml"/>
</struts>
ログイン後にコピー

user.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<package name="wwfy" extends="struts-default">
		<action name="login" class="wwfy.user.LoginAction">
			<!--省略Action其他配置-->
		</action>
		<action name="logout" class="wwfy.user.LogoutAction">
			<!--省略Action其他配置-->
		</action>
	</package>
</struts>
ログイン後にコピー

2,

前回の struts.properties 構成ファイルの紹介で、すべて struts 内にあると述べました。 .properties ファイル 定義された attributes は、struts.xml ファイルで構成できます。 struts.xml では、 タグ

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<!--设置开发模式-->
	<constant name="struts.devMode" value="true"/>
	<!--设置编码形式为GB2312-->
	<constant name="struts.i18n.encoding" value="GB2312"/>
	<!--省略其他配置信息-->
</struts>
ログイン後にコピー

3、

1 を使用して構成されます。 Struts2

フレームワーク

では、アクションはパッケージ構成情報によって管理されます。結果、インターセプター、インターセプタースタックなど。パッケージの属性は次のとおりです。

属性 が必須かどうか 説明 nameその他の拡張する継承する名前空間名前空間を設定する抽象


2、extends属性的详解

  • 当一个包通过配置extends属性继承了另一个包的时候,该包将会继承父包中所有的配置,包括action、result、interceptor等。

  • 由于包信息的获取是按照配置文件的先后顺序进行的,所以父包必须在子包之前被定义。

  • 通常我们配置struts.xml的时候,都继承一个名为“struts-default.xml”的包,这是struts2中内置的包。

3、namespace的详解

namespace主要是针对大型项目中Action的管理,更重要的是解决Action重名问题,因为不在同一个命名空间的Action可以使用相同的Action名的。

1)如果使用命名空间则URL将改变

比如我们有一下配置文件

<package name="wwfy" extends="struts-default">
	<action name="login" class="wwfy.action.LoginAction">
		<result>/success.jsp</result>
	</action>
</package>
ログイン後にコピー

则此配置下的Action的URL为localhost:8080/login.action

假如为这个包指定了命名空间

<package name="wwfy" extends="struts-default" namespace="/user">
	<action name="login" class="wwfy.action.LoginAction">
		<result>/success.jsp</result>
	</action>
</package>
ログイン後にコピー

则此配置下的Action的URL为localhost:8080/user/login.action

2)默认命名空间

Struts2中如果没有为某个包指定命名空间,该包使用默认的命名空间,默认的命名空间总是""。

3)指定根命名空间

当设置了命名空间为“/”,即指定了包的命名空间为根命名空间时,此时所有根路径下的Action请求都会去这个包中查找对应的资源信息。

假若前例中路径为http://localhost:8080/login.action则所有http://localhost:8080/*.action都会到设置为根命名空间的包中寻找资源。

4、

1、属性介绍

パッケージ名であり、マークとして使用されます。 パッケージこのパッケージに適用する
いいえこのパッケージを設定する他のパッケージ
いいえパッケージの
いいえ設定抽象パッケージとして

属性名称

是否必须

功能描述

name请求的Action名称
classAction处理类对应具体路径
method指定Action中的方法名
converter指定Action使用的类型转换

如果没有指定method则默认执行Action中的execute方法。

2、属性介绍

属性名称

是否必须

功能描述

name对应Action返回逻辑视图名称,默认为success
type返回结果类型,默认为dispatcher


3、通配符的使用

随着result的增加,struts.xml文件也会随之变得越来越复杂。那么就可以使用通配符来简化配置:

例如下面这个案例:

Action为Test.java

public class Test {
	public String test1(){
		return "result1";
	}
	
	public String test2(){
		return "result2";
	}
	
	public String test3(){
		return "result3";
	}
}
ログイン後にコピー

struts.xml中配置为

<package name="wwfy" extends="struts-default">
	<action name="test*" class="wwfy.action.test{1}">
		<result name="result{1}">/result{1}.jsp</result>
	</action>
</package>
ログイン後にコピー

4、访问Action方法的另一种实现方式

在Struts2中如果要访问Action中的指定方法,还可以通过改变URL请求来实现,将原本的“Action名称.action”改为“Action名称!方法名称.action”在struts.xml中就不需要指定方法名了。

5、

这两个标签都是用来配置发生异常时对应的视图信息的,只不过一个是Action范围的,一个是包范围的,当同一类型异常在两个范围都被配置时,Action范围的优先级要高于包范围的优先级.这两个标签包含的属性也是一样的:

属性名称

是否必须

功能描述

name用来表示该异常配置信息
result指定发生异常时显示的视图信息,这里要配置为逻辑视图
exception指定异常类型


两个标签的示例代码为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<package name="default" extends="struts-default">
		<global-exception-mappings>
			<exception-mapping result="逻辑视图" exception="异常类型"/>
		</global-exception-mappings>
		<action name="Action名称">
			<exception-mapping result="逻辑视图" exception="异常类型"/>
		</action>
	</package>
</struts>
ログイン後にコピー

6、

当我们在配置Action的时候,如果没有为某个Action指定具体的class值时,系统将自动引用标签中所指定的类。在Struts2框架中,系统默认的class为ActionSupport,该配置我们可以在xwork的核心包下的xwork-default.xml文件中找到。

有特殊需要时,可以手动指定默认的class

package wwfy.action;

public class DefaultClassRef {
	public void execute(){
		System.out.println("默认class开始执行……");
	}
}
ログイン後にコピー

在struts.xml中配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<package name="wwfy" extends="struts-default">
		<!-- 指定默认class为Test -->
		<default-class-ref class="wwfy.action.DefaultClassRef"/>
		<action name="test1">
			<result>/index.jsp</result>
		</action>
	</package>
</struts>
ログイン後にコピー

7、

如果在请求一个没有定义过的Action资源时,系统就会抛出404错误。这种错误不可避免,但这样的页面并不友好。我们可以使用来指定一个默认的Action,如果系统没有找到指定的Action,就会指定来调用这个默认的Action。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<package name="wwfy" extends="struts-default">
		
		<default-action-ref name="acctionError"></default-action-ref>
		<action name="acctionError">
			<result>/jsp/actionError.jsp</result>
		</action>
	</package>
</struts>
ログイン後にコピー

8、

该标签用来设置整个包范围内所有Action所要应用的默认拦截器信息。事实上我们的包继承了struts-default包以后,使用的是Struts的默认设置。我们可以在struts-default.xml中找到相关配置:

<default-interceptor-ref name="defaultStack"/>
ログイン後にコピー

在实际开发过程中,如果我们有特殊的需求是可以改变默认拦截器配置的。当时一旦更改这个配置,“defaultStack”将不再被引用,需要手动最加。

9、

通过该标签可以向Struts2框架中注册拦截器或者拦截器栈,一般多用于自定义拦截器或拦截器栈的注册。该标签使用方法如下:

<interceptors>
	<interceptor name="拦截器名" class="拦截器类"/>
	<interceptor-stack name="拦截器栈名">
		<interceptor-ref name="拦截器名">
	</interceptor-stack>
</interceptors>
ログイン後にコピー

10、

通过该标签可以为其所在的Action添加拦截器功能。当为某个Action单独添加拦截器功能后,中所指定的拦截器将不再对这个Action起作用。

11、

该标签用于设置包范围内的全局结果集。在多个Action返回相同逻辑视图的情况下,可以通过标签统一配置这些物理视图所对应的逻辑视图。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="wwfy" extends="struts-default">
<global-results>
<result name="test">/index.jsp</result>
</global-results>
</package>
</struts>
ログイン後にコピー

【相关推荐】

1. XML免费视频教程

2. XML技术手册

3. 李炎恢XHTML视频教程

以上がstruts.xmlの詳細な設定例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PowerPoint を使用して XML ファイルを開くことはできますか? PowerPoint を使用して XML ファイルを開くことはできますか? Feb 19, 2024 pm 09:06 PM

XML ファイルは PPT で開くことができますか? XML、Extensible Markup Language (Extensible Markup Language) は、データ交換とデータ ストレージで広く使用されている汎用マークアップ言語です。 HTML と比較して、XML はより柔軟であり、独自のタグとデータ構造を定義できるため、データの保存と交換がより便利で統一されます。 PPT (PowerPoint) は、プレゼンテーションを作成するために Microsoft によって開発されたソフトウェアです。包括的な方法を提供します。

Python を使用した XML データのマージと重複排除 Python を使用した XML データのマージと重複排除 Aug 07, 2023 am 11:33 AM

Python を使用した XML データのマージと重複排除 XML (eXtensibleMarkupLanguage) は、データの保存と送信に使用されるマークアップ言語です。 XML データを処理するとき、複数の XML ファイルを 1 つにマージしたり、重複データを削除したりする必要がある場合があります。この記事では、Python を使用して XML データのマージと重複排除を実装する方法と、対応するコード例を紹介します。 1. XML データのマージ 複数の XML ファイルがある場合、それらをマージする必要があります。

Python で XML データを CSV 形式に変換する Python で XML データを CSV 形式に変換する Aug 11, 2023 pm 07:41 PM

Python の XML データを CSV 形式に変換する XML (ExtensibleMarkupLanguage) は、データの保存と送信に一般的に使用される拡張可能なマークアップ言語です。 CSV (CommaSeparatedValues) は、データのインポートとエクスポートに一般的に使用されるカンマ区切りのテキスト ファイル形式です。データを処理するとき、分析や処理を容易にするために、XML データを CSV 形式に変換する必要がある場合があります。 Pythonは強力です

Python を使用した XML データのフィルタリングと並べ替え Python を使用した XML データのフィルタリングと並べ替え Aug 07, 2023 pm 04:17 PM

Python を使用した XML データのフィルタリングと並べ替えの実装 はじめに: XML は、データをタグと属性の形式で保存する、一般的に使用されるデータ交換形式です。 XML データを処理するとき、多くの場合、データのフィルタリングと並べ替えが必要になります。 Python には、XML データを処理するための便利なツールとライブラリが多数用意されています。この記事では、Python を使用して XML データをフィルタリングおよび並べ替える方法を紹介します。 XML ファイルの読み取り 始める前に、XML ファイルを読み取る必要があります。 Python には XML 処理ライブラリが多数ありますが、

Python は XML と JSON 間の変換を実装します Python は XML と JSON 間の変換を実装します Aug 07, 2023 pm 07:10 PM

Python は XML と JSON 間の変換を実装します はじめに: 日常の開発プロセスでは、異なる形式間でデータを変換する必要があることがよくあります。 XML と JSON は一般的なデータ交換形式であり、Python ではさまざまなライブラリを使用して XML と JSON の間で変換できます。この記事では、一般的に使用されるいくつかの方法をコード例とともに紹介します。 1. Python で XML を JSON に変換するには、xml.etree.ElementTree モジュールを使用できます。

Python を使用した XML でのエラーと例外の処理 Python を使用した XML でのエラーと例外の処理 Aug 08, 2023 pm 12:25 PM

Python を使用した XML でのエラーと例外の処理 XML は、構造化データの保存と表現に使用される一般的に使用されるデータ形式です。 Python を使用して XML を処理すると、エラーや例外が発生することがあります。この記事では、Python を使用して XML のエラーと例外を処理する方法を紹介し、参考用のサンプル コードをいくつか示します。 Try-Except ステートメントを使用して XML 解析エラーを捕捉する Python を使用して XML を解析すると、時々、次のようなエラーが発生することがあります。

Python は XML 内の特殊文字とエスケープ シーケンスを解析します Python は XML 内の特殊文字とエスケープ シーケンスを解析します Aug 08, 2023 pm 12:46 PM

Python は XML 内の特殊文字とエスケープ シーケンスを解析します XML (eXtensibleMarkupLanguage) は、異なるシステム間でデータを転送および保存するために一般的に使用されるデータ交換形式です。 XML ファイルを処理する場合、特殊文字やエスケープ シーケンスが含まれる状況に遭遇することが多く、これにより解析エラーやデータの誤解が生じる可能性があります。したがって、Python を使用して XML ファイルを解析する場合は、これらの特殊文字とエスケープ シーケンスの処理方法を理解する必要があります。 1. 特殊文字と

C# 開発で XML および JSON データ形式を処理する方法 C# 開発で XML および JSON データ形式を処理する方法 Oct 09, 2023 pm 06:15 PM

C# 開発で XML および JSON データ形式を処理する方法には、特定のコード サンプルが必要です。現代のソフトウェア開発では、XML と JSON の 2 つのデータ形式が広く使用されています。 XML (Extensible Markup Language) はデータの保存と送信に使用されるマークアップ言語であり、JSON (JavaScript Object Notation) は軽量のデータ交換形式です。 C# 開発では、XML と JSON データの処理と操作が必要になることがよくありますが、この記事では、C# を使用してこれら 2 つのデータ形式を処理し、添付する方法に焦点を当てます。

See all articles