Struts 2入門
28098 ワード
Struts 2の開発環境の構築必要なjarパッケージを見つけます.リリースパッケージのlibディレクトリ(異なるバージョンで必要な最小jarパッケージは異なります.異なるバージョンのドキュメントを参照してください.2.1.7) strutsという名前を確立する.xmlのプロファイル、内容は以下の通り: コアコントローラは、フィルタ である.
TOmcatの起動に成功した場合、エラーは報告されず、環境構築に成功したことを証明します.
最初のStruts 2ケースの開発
1、strutsを書く.xmlプロファイル
2、プロファイルに基づいて、必要なjavabeanと対応する動作方法を作成し、動作方法で論理呼び出しを完了します.
3、Viewを作成し、結果を表示する
4、helloworldの動作にアクセスする方法:http://localhost:8080/struts2day01/test/helloworld適用名/パッケージの名前空間/アクションの名前
デフォルトでは、動作名helloworldにアクセスし、直接helloworld、またはhelloworldを使用できます.action
検索順
Struts 2プロファイルの詳細
1、struts.xmlプロファイルの作成にヒントがない問題はありますか?方法1:インターネットを利用して方法2:1、コピーhttp://struts.apache.org/dtds/struts-2.1.7.dtdアドレス2、Eclipseのwindow、preferences、XML Catelog 3検索、addボタンLocation:dtdファイルのパスKeyType:URI Key:http://struts.apache.org/dtds/struts-2.1.7.dtd
2、Strutsプロファイルの各種のデフォルト値.
Action:class:デフォルトはcom.opensymphony.xwork2.ActionSupport定数:SUCCESS success NONE none ERROR error INPUT input LOGIN login method:デフォルト値はpublic String execute(){}
result:type:目的地への移動方法.デフォルト値は転送です.名前はdispatcherです(注:typeの値は定義されており、でたらめではありません.struts-default.xmlのpackageに定義されています). dispatcher:あるページ に通常転送 chain:通常のスナップは、ある動作名 に送信されます. redirect:ページ にリダイレクト redirectAction:動作名 にリダイレクト plainText:JSPコンテンツ をテキスト形式で出力
result要素の書き方:
方法1:
方式2:
注意:別の名前空間での動作に転向する場合は、使用方法2のみです.
各種result使用例
ここで6番目の動的アクションへの属性付与値は7番目のアクションを取得した値と比較して注目に値する.
6.jsp
7.jsp
開発中のプロファイルの変更は、アクセス時にフレームワークを自動的に再ロードします.
struts.devMode=false(default.properties)strutx.xmlのconstant要素を使用してdefault.propertiesのデフォルト動作を上書き
制御actionの接尾辞名
完了
struts2-core.jar jar
xwork-2.jar xwork jar
ognl.jar ognl
freemarker.jar FreeMarker
commons-logging.jar
commons-fileupload.jar ,2.1.6
commons-io.jar
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
</struts>
<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>
TOmcatの起動に成功した場合、エラーは報告されず、環境構築に成功したことを証明します.
最初のStruts 2ケースの開発
1、strutsを書く.xmlプロファイル
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts><!-- Struts2 -->
<package name="itcast" namespace="/test" extends="struts-default">
<!-- pageckage: name: 。 , 。 namespace: , "/" extends: 。struts-default struts2 。( struts2-core.jar struts-default.xml ) abstract: 。 action (java ) -->
<action name="helloworld" class="cn.itcast.action.HelloWorldAction" method="sayHello">
<!-- action: name: 。 class: JavaBean method:JavaBean 。( : ,public String (){}) -->
<result name="success">/1.jsp</result>
<!-- result: name: :View 。 -->
</action>
</package>
</struts>
2、プロファイルに基づいて、必要なjavabeanと対応する動作方法を作成し、動作方法で論理呼び出しを完了します.
package cn.itcast.action;
public class HelloWorldAction implements Serializable {
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String sayHello(){
message = "helloworld by struts2";
return "success";
}
}
3、Viewを作成し、結果を表示する
${message}
4、helloworldの動作にアクセスする方法:http://localhost:8080/struts2day01/test/helloworld適用名/パッケージの名前空間/アクションの名前
デフォルトでは、動作名helloworldにアクセスし、直接helloworld、またはhelloworldを使用できます.action
検索順
http://localhost:8080/struts2day01/test/a/b/c/helloworld
/test/a/b/c:
helloworld:
:
/test/a/b/c helloworld
/test/a/b helloworld
/test/a helloworld
/test ,
Struts 2プロファイルの詳細
1、struts.xmlプロファイルの作成にヒントがない問題はありますか?方法1:インターネットを利用して方法2:1、コピーhttp://struts.apache.org/dtds/struts-2.1.7.dtdアドレス2、Eclipseのwindow、preferences、XML Catelog 3検索、addボタンLocation:dtdファイルのパスKeyType:URI Key:http://struts.apache.org/dtds/struts-2.1.7.dtd
2、Strutsプロファイルの各種のデフォルト値.
Action:class:デフォルトはcom.opensymphony.xwork2.ActionSupport定数:SUCCESS success NONE none ERROR error INPUT input LOGIN login method:デフォルト値はpublic String execute(){}
: com.opensymphony.xwork2.ActionSupport
result:type:目的地への移動方法.デフォルト値は転送です.名前はdispatcherです(注:typeの値は定義されており、でたらめではありません.struts-default.xmlのpackageに定義されています).
<result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
<result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
<result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
<result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
<result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
<result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
<result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
<result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
<result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
<result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
result要素の書き方:
方法1:
<result type="chain" name="success">a2</result>
方式2:
<result type="chain" name="success">
<param name="actionName">a2</param><!--name chain setActionName() -->
</result>
注意:別の名前空間での動作に転向する場合は、使用方法2のみです.
<package name="p1" namespace="/namespace1" extends="struts-default">
<action name="a2">
<result type="dispatcher" name="success">/3.jsp</result>
</action>
</package>
<package name="p2" namespace="/namespace2" extends="struts-default">
<action name="a1">
<result type="chain" name="success">
<param name="namespace">/namespace1</param>
<param name="actionName">a2</param>
</result>
</action>
</package>
各種result使用例
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<constant name="struts.devMode" value="true"></constant>
<constant name="struts.action.extension" value="action,,do"></constant>
<package name="itcast" namespace="/test" extends="struts-default">
<action name="helloworld" class="cn.itcast.action.HelloWorldAction" method="sayHello">
<result name="success">/1.jsp</result>
</action>
<action name="visit2jsp">
<result type="redirect" name="success">/2.jsp</result>
</action>
</package>
<package name="p1" namespace="/namespace1" extends="struts-default">
<!-- <action name="a1"> <result type="chain" name="success">a2</result> </action>-->
<action name="a2">
<result type="dispatcher" name="success">/3.jsp</result>
</action>
</package>
<package name="p2" namespace="/namespace2" extends="struts-default">
<action name="a1">
<result type="chain" name="success">
<param name="namespace">/namespace1</param>
<param name="actionName">a2</param>
</result>
</action>
</package>
<package name="p3" namespace="/ns3" extends="struts-default">
<action name="a3">
<result type="redirectAction" name="success">
<param name="namespace">/ns4</param>
<param name="actionName">a4</param>
</result>
</action>
</package>
<package name="p4" namespace="/ns4" extends="struts-default">
<action name="a4">
<result type="dispatcher" name="success">/4.jsp</result>
</action>
</package>
<package name="p5" namespace="/ns5" extends="struts-default">
<action name="a5">
<result type="plainText" name="success">/5.jsp</result>
</action>
</package>
<!-- Action -->
<package name="p6" namespace="/ns6" extends="struts-default">
<action name="a6" class="cn.itcast.action.HelloWorldAction">
<param name="message">you are big shit!</param>
<result name="success">/6.jsp</result>
</action>
</package>
<!-- Action -->
<package name="p7" namespace="/ns7" extends="struts-default">
<action name="a7" class="cn.itcast.action.HelloWorldAction" method="sayHello">
<result type="redirect" name="success">/7.jsp?msg=${message}</result>
</action>
</package>
</struts>
ここで6番目の動的アクションへの属性付与値は7番目のアクションを取得した値と比較して注目に値する.
6.jsp
<body>
6666:${message}
</body>
7.jsp
<body>
7777:${param.msg}
</body>
開発中のプロファイルの変更は、アクセス時にフレームワークを自動的に再ロードします.
struts.devMode=false(default.properties)strutx.xmlのconstant要素を使用してdefault.propertiesのデフォルト動作を上書き
<struts>
<constant name="struts.devMode" value="true"></constant>
</struts>
制御actionの接尾辞名
<constant name="struts.action.extension" value="action,,do"></constant>
完了