Struts は習得するのが簡単ではないと考える人もいるかもしれません。MVC1、MVC2、パターンに触れたことのない人には、Struts の一部の概念が混乱を招くようです。 Struts には簡単な概要があります。もちろん、Struts を体系的に学習するにはガイドが必要です。しかし、それについてはまた別の機会にお話しします。
このケースには、ホームページ、ユーザー ログイン、Web サイトのウィザード ページが含まれます。 Struts には深い概念はありません。主に実践的な経験と心の理解に依存します。
WEBサーバーはtomcat4を使用します。 http://jakarta.apache.orgにアクセスして struts1.1 をダウンロードし、zip ファイルを c:struts にリリースし、C:strutswebappsstruts-example.war を c:tomcat4webapps にコピーして起動します。 tomcat. war パッケージが struts-example フォルダーにリリースされ、war パッケージを削除して、テストする struts-example フォルダーの名前を変更します。
1. WEB-INFweb.xml を次のように変更します:
<?xml version="1.0"coding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" " http://java.sun.com/j2ee/dtds/web-app_2_2.dtd ">
<web -アプリ>
<! - これは struts のコントローラーです。ActionServlet クラスは、システムのコマンド転送を担当し、struts-config.xml から構成情報を読み取り、サーバーのバックグラウンドでスレッドを自動的に開始します。特別な要件がない場合 (言語編集機能の追加など)、プログラマはこの部分を無視してそのまま使用できます。 -->
<サーブレット>
<サーブレット名>アクション</サーブレット名>
<サーブレットクラス>org.apache.struts.action.ActionServlet</サーブレットクラス>
<初期パラメータ>
<param-name>設定</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<起動時のロード>1</起動時のロード>
</サーブレット>
<!--このシステムのサーブレットは、一般的な .jspdo などのサフィックスの代わりに、cool というサフィックスを持つファイルにマップできます。サフィックス名は任意の名前に変更できます。もちろん、名前は健全でなければなりません #◎¥% ! -->
<サーブレットマッピング>
<サーブレット名>アクション</サーブレット名>
<url-pattern>*.cool</url-pattern>
</サーブレットマッピング>
<!-- このシステムのデフォルトのホームページは、index.jsp です。複数存在する可能性があります。IIS と同様に、システムは順番に検索します。-->
<ウェルカムファイルリスト>
<welcome-file>index.jsp</welcome-file>
</ウェルカムファイルリスト>
</web-app>
2. testWEB-INF struts-config.xml を次のように変更します:
<?xml version="1.0"coding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts 構成 1.1//EN"
" http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd ">
<struts-config>
<!--FormBean は Struts の概念です。本質的には、ページ フォーム内の各フィールドの値を自動的に格納し、適切なタイミングでフォーム フィールドを埋め戻すために使用されます。従来のような request.getParameter ("fieldName") へ。アクション マッピングのアクションでよく使用されます -->
<フォームビーンズ>
<!—ユーザー情報を保存するために、後で UserForm クラスを追加します。 -->
<form-bean name="userForm" type="test.UserForm"/>
</form-beans>
<!--これは、JavaScript の window.location('index.jsp'); と同様に、システム全体で使用できるグローバル転送アドレスを格納します。また、TV コントローラーのさまざまなボタンや色にも似ています。調整などはStrutsをベースとしたWebアプリケーションの制御フローです。通常の状況では、アクションが処理された後、表示のために JSP ページに転送されます。これは、JSP での MVC 実装の重要なポイントでもあります。 -->
<グローバルフォワード>
<!--failed.cool はサーブレット リクエストとして扱われ、対応するアクション処理はアクション マッピングで見つかります。 -->
<forward name="failed" path="/failed.cool"/>
<forward name="regist" path="/regist.jsp"/>
</グローバルフォワード>
<!--web.xml にサフィックス Cool が付いたリクエストを覚えていますか?こちらで取り扱っております。これは、Struts の Model 部分に相当します。Model 部分は、Struts のより柔軟な場所です。 -->
<アクションマッピング>
<!-- register.cools のリクエストを処理するために使用される FormBean は、test.UserForm クラスである userForm です。処理中にエラーが発生した場合は、index.jsp が返されます。
<action path="/regist" type="test.RegistAction" name="userForm"scope="request" input="/index.jsp" />
<action path="/overview" forward="/hello.jsp"/>
<action path="/failed" forward="/wuwu.jsp" />
</アクションマッピング>
</struts-config>
3. クラスパス test.UserForm を持つ FormBean を追加します。このクラスの内容は次のとおりです
。
org.apache.struts.action.ActionForm をインポートします。
パブリック クラス UserForm は ActionForm を拡張します
{
private String name="lpw";//ユーザー名 private String ps="1111";//パスワード public UserForm(){}
public void setName(String s) {name=s;}
public String getName() {名前を返します;}
public void setPs(String s) {ps=s;}
public String getPs() {リターン ps;}
}
4. Action のサブクラスを追加します。クラスパスは test です。このクラスの内容は次のとおりです
。
インポート java.lang.reflect.InvocationTargetException;
java.util.Localeをインポートします。
インポート javax.servlet.ServletException;
インポート javax.servlet.http.HttpServletRequest;
インポート javax.servlet.http.HttpSession;
インポート javax.servlet.http.HttpServletResponse;
org.apache.struts.action.Action をインポートします。
org.apache.struts.action.ActionError をインポートします。
org.apache.struts.action.ActionErrors をインポートします。
org.apache.struts.action.ActionForm をインポートします。
org.apache.struts.action.ActionForward をインポートします。
org.apache.struts.action.ActionMapping をインポートします。
org.apache.struts.util.MessageResources をインポートします。
インポートtest.UserForm;
public Final class RegistAction extends Action
{
public ActionForwardexecute(ActionMappingマッピング、ActionFormフォーム、HttpServletRequestリクエスト、HttpServletResponseレスポンス)
例外をスローする
{
ロケール locale = getLocale(request);
MessageResources メッセージ = getResources(request);
HttpSession セッション = request.getSession();
ユーザーフォーム userform = (ユーザーフォーム) フォーム;
//ここで他のクラスを呼び出して、データベースの書き込みやその他の論理的判断を実行できます。 //UserForm によって渡されたパラメータ名の値がデフォルトの lpw である場合、失敗に転送されます。
// この名前は、struts-config.xml の <global-forwards> でマップされた URL アドレスで検索されます // (この例では、failed.cool になります)。
//覚えて?サフィックス「cool」を持つすべてのリクエストは、対応するアクション処理を見つけるために action-mappings に移動します。 // 最終ディレクトリは wuwu.jsp*/ です。
if( "lpw".equals(userform.getName()) )
return (mapping.findForward("失敗"));
それ以外
return (mapping.findForward("regist"));
}
5.
次のすべての新規ページまたは変更されたページは、struts の View 部分に相当します。ホームページの Index.jsp を次のように変更します。
<%@ page contentType="text/html;charset=GBK" language="java" %>
<%@ ページインポート = "test.*" %>
<a href="overview.cool">サイト ナビゲーション</a><br>
<form action="regist.cool" method="post">
<!—request.getParameter("param");--> データを自動的に取得できるように、フォーム内のフィールドの名前はユーザー フォーム内のパラメーターと同じである必要があります。
ユーザー:<input type="text" name="name"><br>
パスワード:<input type="password" name="ps"><br>
<input type=submit value="ユーザーの追加">
</form>
6. サイト ナビゲーション用に hello.jsp を追加します。
<h1>サイト マップ</h1> 以下は、リーダーによって入力されるコンテンツです。
7. wuwu.jsp を追加します。新しいユーザーがログインしない場合は、このページにリダイレクトされます。ページ:
<%@ ページ contentType="text/html;charset=GBK" language="java" %>
<jsp:useBean id="beanlpw" class="test.UserForm"scope="session"/>
既存のユーザー: <%=beanlpw.getName()%><br>
パスワード: <%=beanlpw.getPs()%><br>
新しいユーザーは取得されませんでした。
8. register.jsp を追加します。新しいユーザーがログインすると、次のページにリダイレクトされます:
<%@ page contentType="text/html;charset=GBK" language="java" %>
<jsp:useBean id="beanlpw" class="test.UserForm"scope="session"/>
新しいユーザー アカウント: <%=beanlpw.getName()%><br>
パスワード: <%=beanlpw.getPs()%>
9. tomcat4 を起動し、ブラウザにhttp://localhost:8080/test/index.jspと入力して操作すると、結果が表示され、最初に M を理解できます。もちろん、これは作者の善意です。読者が混乱している場合は、間違いを指摘してください。