検索
ホームページJava&#&チュートリアルStruts2フレームワークの紹介と使い方紹介

Struts2フレームワークの紹介と使い方紹介

Jul 18, 2017 pm 02:54 PM
struts2フレーム

元のアドレス: Click to go

1 ValueStack とは

Struts が提供する共有データのデータ構造、バリュー スタックと呼ばれます

2 ValueStack を使用する理由

コントローラーからブラウザにデータを渡します
コントローラーに関連する情報を保存しますrequest オブジェクト情報 (セッション/アプリケーション)


3 ValueStack オブジェクトのライフサイクル

リクエストがサーバーに入った後、リクエストの処理が完了すると、ValueStack オブジェクトがメモリ内に作成され、ValueStack オブジェクトはクリアされます

4 ValueStackのデータへのアクセス方法

OGNL式を使用して取得
EL式を使用して取得

5 ValueStackにデータを格納する領域分け

内容(スタック構造) OGNLまたはELを使用してデータを取得
コンテキスト(マップ)構造体)#keyを使ってデータを取得する

7 Case:コントローラーからブラウザに値を渡してvalueStack領域を表示する

7.1 ガイドパッケージ

 1 <project> 2   <modelversion>4.0.0</modelversion> 3   <groupid>cn.xiangxu</groupid> 4   <artifactid>ssh03</artifactid> 5   <version>0.0.1-SNAPSHOT</version> 6   <packaging>war</packaging> 7   <dependencies> 8       <dependency> 9           <groupid>org.apache.struts</groupid>10           <artifactid>struts2-core</artifactid>11           <version>2.3.8</version>12       </dependency>13       <dependency>14           <groupid>org.apache.struts</groupid>15           <artifactid>struts2-spring-plugin</artifactid>16           <version>2.3.8</version>17       </dependency>18       <dependency>19           <groupid>org.apache.struts</groupid>20           <artifactid>struts2-json-plugin</artifactid>21           <version>2.3.8</version>22       </dependency>23   </dependencies>24 </project>
pom.xml

7.2 設定ファイル

7.2.1 spring_context.xml

設定アノテーションスキャン

 1 <?xml  version="1.0" encoding="UTF-8"?> 2 <beans>18 19     <!-- 配置组件扫描 -->20     <component-scan></component-scan>21     22 </beans>
spring_context.xml

7.2.2 struts.xml

アクセスパス、アクセスネットワーク名を設定する、およびアクション処理クラス

 1 <?xml  version="1.0" encoding="UTF-8"?> 2  3 nbsp;struts PUBLIC 4     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 5     "http://struts.apache.org/dtds/struts-2.3.dtd"> 6      7 <struts> 8  9     <!-- 测试struts整合spring时用 -->10     <package>11         <action>12             <result>13                 /WEB-INF/jsp/msg.jsp14             </result>15         </action>16     </package>17     18     <package>19         <action>20             <result>21                 /WEB-INF/jsp/valueStack.jsp22             </result>23         </action>24     </package>25     26 </struts>27     28
struts.xml

7.2.3 web.xml

スプリングリスナーの設定

スプリング設定ファイルの場所の設定

メインコントローラーの設定

りー
web.xml

7.3 アクション処理クラスの書き込み

 1 <?xml  version="1.0" encoding="UTF-8"?> 2 <web-app> 3   <display-name>ssh03</display-name> 4   <welcome-file-list> 5     <welcome-file>index.html</welcome-file> 6     <welcome-file>index.htm</welcome-file> 7     <welcome-file>index.jsp</welcome-file> 8     <welcome-file>default.html</welcome-file> 9     <welcome-file>default.htm</welcome-file>10     <welcome-file>default.jsp</welcome-file>11   </welcome-file-list>12   13   <!-- 配置spring监听14               目的:容器启动时自动加载一些东西到缓存中 -->15   <listener>16       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>17   </listener>18   19   <!-- 配置Spring配置文件的位置 -->20   <context-param>21       <param-name>contextConfigLocation</param-name>22       <param-value>classpath:spring_*.xml</param-value>23   </context-param>24   25   <!-- 配置主控制器和过滤条件 -->26   <filter>27       <filter-name>mvc</filter-name>28       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>29   </filter>30   <filter-mapping>31       <filter-name>mvc</filter-name>32       <url-pattern>/*</url-pattern>33   </filter-mapping>34   35 </web-app>
ValueStackAction.java

コントロールクラスに必要なエンティティクラス

rrreええ
人 .java

 

  7.4 编写jsp页面

    7.4.1 利用EL表达式访问ValueStack中的数据的格式

      ${变量名}

    7.4.2 利用OGNL表达式访问ValueStack中的数据的格式

      

      

      注意:为什么访问sesseion中的数据时需要在前面加 #session. 是因为....【自己百度去,或者参见本博客顶端的连接;三少能力有限,讲不清楚】

      注意:在读取栈结构中的数据时是从栈顶开始读的,如果有两个变量的名字相同,那么读取到的只会是相对前面的那个变量的值

 1  3      4 <!-- 引入struts2标签库 -->     5  6      7 nbsp;html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 8  9 10 <meta>11 <title>Insert title here</title>12 13 14     <h2 id="跟valueStack有关的页面">跟valueStack有关的页面</h2>15     <hr><hr>16     17     <h2 id="利用EL表达式从valuesStack中获取数据">利用EL表达式从valuesStack中获取数据</h2>18     <h3 id="message">${message }</h3>19     <hr>20     <h3 id="loginName">${loginName }</h3>21     <hr>22     <h3 id="password">${password }</h3>23     <hr><hr>24     25     <h2 id="利用OGNL表达式获取valueStack中的数据">利用OGNL表达式获取valueStack中的数据</h2>26     <h3><property></property></h3>27     <hr>28     <h3><property></property></h3>29     <hr>30     <h3><property></property></h3>31 32     <hr><hr>33     34     <debug></debug>35 36 
valueStack.jsp

   7.5 项目结构图  

    

 

以上がStruts2フレームワークの紹介と使い方紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 05:45 PM

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?Mar 17, 2025 pm 05:43 PM

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

分散コンピューティングにJavaのRMI(リモートメソッドの呼び出し)を使用するにはどうすればよいですか?分散コンピューティングにJavaのRMI(リモートメソッドの呼び出し)を使用するにはどうすればよいですか?Mar 11, 2025 pm 05:53 PM

この記事では、分散アプリケーションを構築するためのJavaのリモートメソッドの呼び出し(RMI)について説明します。 インターフェイスの定義、実装、レジストリのセットアップ、およびクライアント側の呼び出しを詳述し、ネットワークの問題やセキュリティなどの課題に対処します。

ネットワーク通信にJavaのソケットAPIを使用するにはどうすればよいですか?ネットワーク通信にJavaのソケットAPIを使用するにはどうすればよいですか?Mar 11, 2025 pm 05:53 PM

この記事では、ネットワーク通信のためのJavaのソケットAPI、クライアントサーバーのセットアップ、データ処理、リソース管理、エラー処理、セキュリティなどの重要な考慮事項をカバーしています。 また、パフォーマンスの最適化手法も調査します

Javaでカスタムネットワークプロトコルを作成するにはどうすればよいですか?Javaでカスタムネットワークプロトコルを作成するにはどうすればよいですか?Mar 11, 2025 pm 05:52 PM

この記事では、カスタムJavaネットワーキングプロトコルの作成を詳述しています。 プロトコルの定義(データ構造、フレーミング、エラー処理、バージョン化)、実装(ソケットを使用)、データシリアル化、およびベストプラクティス(効率、セキュリティ、メンテナ

See all articles

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

メモ帳++7.3.1

メモ帳++7.3.1

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

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 中国語版

SublimeText3 中国語版

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