struts2框架的搭建步驟
阿新 • • 發佈:2018-11-29
struts2框架的搭建步驟
1.建立 web project
2.匯入所需的jar包(前5種jar是必須,其餘的選用)
xwork-core-2.3.24.jar struts2-core-2.3.24.jar ognl-3.0.6.jar freemarker-2.3.22.jar commons-lang3-3.2.jar log4j-core-2.2.jar log4j-api-2.2.jar javassist-3.11.0.GA.jar commons-io-2.2.jar commons-fileupload-1.3.1.jar asm-tree-3.3.jar asm-commons-3.3.jar asm-3.3.jar
3.編寫實體類(POJO)
pojo:不要繼承任何父類,也不需要實現任何介面
public class HelloAction {
public String hello(){
System.out.println("hello world");
return "success";
}
}
4.在src下建立名為struts.xml檔案
引入dtd約束
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
在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:將action配置封裝,就是可以在package中配置狠多個action name:給包起個名字,起到標識作用,隨便起不要與其他包名重複 namespace屬性:給action的訪問路徑中定義個一個名稱空間 extends:繼承一個指定包 abstract:包是否為抽象,標識性屬性,標識該包不能獨立執行,專門被繼承 --> <package name="hello" namespace="/hello" extends="struts-default"> <!-- action元素:配置action類 name屬性:決定了Action訪問資源名 class屬性:action的完整類名 method屬性:指定呼叫Action中的哪個方法來處理請求 --> <action name="HelloAction" class="cn.test.HelloAction" method="hello"> <!-- result元素:結果配置 name屬性:標識結果處理的名稱,與action方法的返回值對應 type屬性:指定呼叫哪一個result類來處理結果,預設使用轉發 (可以檢視struts-default.xml檔案中的): <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/> 其中的default="true" 表示預設 標籤體:填寫頁面的相對路徑 --> <result name="success">/index.jsp</result> </action> </package> </struts>
5.開啟tomcat 訪問地址http://localhost:8080/hello/HelloAction
此時顯示的就是index.jsp的頁面中的內容
哈哈~~~~~都是騙你的啊,單純的人類,這是不是你最喜歡看到的畫面
離成功還有一步之遙,還缺少的最重要的配置項在web.xml中配置struts2的核心過濾器
<!-- struts2核心過濾器 -->
<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>
再次訪問相應的資源路徑,驚喜就在前方,別放棄