1. 準備作業
• ブラウザを開いてhttp://struts.apache.org/と入力します。
• ハイパーリンク「Struts 2.3.x」をクリックしてダウンロードページを開きます。
• 「struts-2.3.x-all.zip」をクリックしてダウンロードします。
2. Struts2 環境を構築します。
• jar パッケージの追加: struts\apps\struts2-blank\WEB-INF\lib の下にあるすべての jar パッケージを現在の Web アプリケーションの lib ディレクトリにコピーします。
• web.xml ファイルで struts2 を構成する: struts\apps\struts2-blank1\WEB-INF\web.xml ファイルのフィルターの構成を現在の Web アプリケーションの web.xml ファイルにコピーします。
• 現在の Web アプリケーションのクラスパスに struts2 の構成ファイル struts.xml を追加します。struts1\apps\struts2-blank\WEB-INF\classes にある struts.xml ファイルを現在の Web アプリケーションの src ディレクトリにコピーします。
3. DTD 制約を追加します (コード入力プロンプト)
WEB-INF での XML ファイルの構成
<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>
src 下の struts.xml の構成
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!--
package: 包. struts2 使用 package 来组织模块.
name 属性: 必须. 用于其它的包应用当前包.
extends: 当前包继承哪个包, 继承的, 即可以继承其中的所有的配置. 通常情况下继承 struts-default
struts-default 这个包在 struts-default.xml 文件中定义.
namespace 可选, 如果它没有给出, 则以 / 为默认值.
若 namespace 有一个非默认值, 则要想调用这个包里的Action,
就必须把这个属性所定义的命名空间添加到有关的 URI 字符串里
http://localhost:8080/contextPath/namespace/actionName.action
-->
<package name="Helloword" extends="struts-default">
<!--
配置一个 action: 一个 struts2 的请求就是一个 action
name: 对应一个 struts2 的请求的名字(或对一个 servletPath, 但去除 / 和扩展名), 不包含扩展名
class 的默认值为: com.opensymphony.xwork2.ActionSupport
method 的默认值为: execute
result: 结果.
-->
<action name="product-input">
<!--
result: 结果. 表示 action 方法执行后可能返回的一个结果. 所以一个 action 节点可能会有多个 result 子节点.
多个 result 子节点使用 name 来区分
name: 标识一个 result. 和 action 方法的返回值对应. 默认值为 success
type: 表示结果的类型. 默认值为 dispatcher(转发到结果.)
-->
<result>/WEB-INF/pages/input.jsp</result>
</action>
<action name="product-details" class="com.zs.struts2.bean.Shop"
method="save">
<result name="shop">/WEB-INF/pages/details.jsp</result>
</action>
</package>
</struts>