1. Preparatory work
• Open a browser and enter http://struts.apache.org/
• Click the hyperlink " Struts 2.3.x " to open the download page
• Click " struts-2.3.x-all.zip " to download
2. Build the Struts2 environment:
• Add jar package: Copy all jar packages under struts\apps\struts2-blank\WEB-INF\lib to the lib directory of the current web application.
• Configure struts2 in the web.xml file: Copy the configuration of the filter in the struts\apps\struts2-blank1\WEB-INF\web.xml file to the web.xml file of the current web application
• Add the configuration file struts.xml of struts2 under the classpath of the current web application: Copy the struts.xml file under struts1\apps\struts2-blank\WEB-INF\classes to the src directory of the current web application.
3. Add DTD constraints (input code prompt)
Configuration of XML files under WEB-INF
<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>
Configuration in struts.xml under src
<?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>