元のアドレス: 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>
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>
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
7.2.3 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>
コントロールクラスに必要なエンティティクラス


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
7.5 项目结构图
以上がStruts2フレームワークの紹介と使い方紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

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

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

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

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

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

メモ帳++7.3.1
使いやすく無料のコードエディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

ホットトピック



