學習版本:struts-2.3.15.3
一、導入jar包,可以參考 官方項目 blank。
二、添加配置文件:web.xml struts.xml
web.xml:
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 name="default" namespace="/" extends="struts-default"> <action name="helloworld" class="com.nucsoft.struts2.helloworld.HelloWorld" method="firstMethod"> <result name="success">/success.jsp</result> </action> </package> </struts> struts.xml三、創建 Action 類
public class HelloWorld { private static final String SUCCESS = "success"; public String firstMethod() { System.out.println("com.nucsoft.struts2.helloworld.HelloWorld.firstMethod"); return SUCCESS; } } HelloWorldAction四、詳解
web.xml:
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter為 struts2 的核心處理器,相當於 SpringMVC 的dispatchServlet
struts.xml
根標簽:struts
package 標簽定義一個功能模塊,
name 屬性:標識 package,便於引用,extends 屬性:需要繼承一個父 package,如 struts-default。
namespace 屬性:包的命名空間。默認為 /,abstract 屬性:定義包為抽象的,不能包含 Action 的定義。
action 標簽:
一個 Struts2 請求就是一個 action,
name 屬性:定義了一個 Struts2 請求的名字,不包含擴展名,相當於 servlet-path 去掉 / 和 .action
class 屬性:定義請求處理類,默認為 ActionSupport,在 struts-default.xml 中配置了
method 屬性:每一個 Action 類都可以應答多個 Struts2 請求,每一個請求都由具體的方法處理,方法名由 method 指定。默認為 execute()。
result 標簽:
代表 Struts2 處理用戶請求後返回的"結果",也就是響應。
name 屬性:值和 action 的 method 屬性指定的方法的字符串返回值對象,默認為 success。
Action類:
1.不需要實現任何接口或繼承任何類。
2.在 Action 類中可以使用 setXxx() 方法接受 Struts2 請求中提交的請求參數(不論是 get 請求還是 post請求)
3.Action 類中的 getXxx() 方法可以用來在頁面上顯示數據
4.處理請求方法有固定格式:必須為 public,返回值必須是 String 類型,沒有參數