Struts 2學習

MVC框架

  • 自動將表單中的屬性綁定到bean對象中(獲取參數,封裝到對象中),自動進行類型轉換
  • 在配置文件動態設置頁面跳轉的值

搭建Struts2框架

所有的MVC框架都需要Web應用加載一個核心控制器

加載FilterDispatcher

點擊download,將下載的jar包放到WEB-INF目錄下lib

在web.xml文件中配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>Strut02</display-name>

    <filter>
    <!-- 配置Struts2核心Filter的名字 -->
        <filter-name>struts2</filter-name>
        <!-- 配置Struts2核心Filter的實現類 -->
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
          <init-param>
          <!-- 配置Struts2框架默認加載的Action包結構,可以沒有。 -->
          <param-name>actionPackages</param-name>
          <param-value>org.apache.struts2.showcase.person</param-value>
          </init-param>
          <!-- 配置Struts2框架的配置提供者類 -->
          <init-param>
          <param-name>configProviders</param-name>
          <param-value>lee.MyConfigurationProvider</param-value>
          </init-param>
    </filter>
<!-- 配置Filter攔截的URL -->
    <filter-mapping>
    <!-- 配置Struts2的核心FilterDispatcher攔截所有用戶請求 -->
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app>
  • 修改默認編碼UTF-8,創建jsp頁面
  • 在src下創建package名爲com.qtu.pratice,再創建Action的java文件UserAction
  • 創建對應屬性的getter/setter方法和execute()方法(返回視圖名稱)
  • 在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>

    <!-- 所有匹配*.action的請求都由struts2處理 -->
    <constant name="struts.action.extension" value="action" />
    <!-- 是否啓用開發模式,指定struts2處於開發階段,可進行調試 -->
    <constant name="struts.devMode" value="true" />
    <!-- struts配置文件改動後,是否重新加載 -->
    <constant name="struts.configuration.xml.reload" value="true" />
    <!-- 設置瀏覽器是否緩存靜態內容 -->
    <constant name="struts.serve.static.browserCache" value="false" />
    <!-- 請求參數的編碼方式 -->
    <constant name="struts.i18n.encoding" value="utf-8" />
    <!-- 每次HTTP請求系統都重新加載資源文件,有助於開發 -->
    <constant name="struts.i18n.reload" value="true" />
    <!-- 文件上傳最大值 -->
    <constant name="struts.multipart.maxSize" value="104857600" />
    <!-- 讓struts2支持動態方法調用 -->
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <!-- Action名稱中是否還是用斜線 -->
    <constant name="struts.enable.SlashesInActionNames" value="false" />
    <!-- 允許標籤中使用表達式語法 -->
    <constant name="struts.tag.altSyntax" value="true" />
    <!-- 對於WebLogic,Orion,OC4J此屬性應該設置成true -->
    <constant name="struts.dispatcher.parametersWorkaround" value="false" />

    <!-- Struts2的Action都必須配置在package裏,此處默認package -->
    <package name="default" namespace="/" extends="struts-default">
    <!-- 定義一個名爲user的Action,實現類爲com.qtu.pratice.action.UserAction -->
    <action name="user" class="com.qtu.pratice.action.UserAction">
    <!-- 配置execute()方法返回值與視圖資源之間的映射關係 -->
    <result name="success">/result.jsp</result>
    <result name="error">/error.jsp</result>
    </package>

</struts>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章