1. 程式人生 > >struts2的配置

struts2的配置

struts2配置

xml綁定本地約束的方法:

window-->preferences(-->MyEclipse-->Files and Editors)-->XML-->XML Catalog-->user specified Entires-->Add 中:


在出現的窗口中的Key Type 中選擇URI,在location中選“File system”,然後再spring解壓目錄的dist/resources目錄中選擇spring-beans-2.5.xsd,Key Type 改為Schema Location,Key 改為在最後面的內容加上spring-beans-2.5.xsd



Struts2的介紹:

技術分享

Struts2的基本流程:

技術分享



struts2的導包:此保中的jar包為基本包

struts-2.3.24\apps \ struts2-blank.war\WEB-INF\lib -


struts2的struts.xml約束文件:copy到新建xml中

struts2-core-2.3.24.jar/struts-2.3.dtd


src下的strets.xml的配置信息

<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.itheima.a_hello.HelloAction" method="hello" >

<!-- result元素:結果配置

name屬性: 標識結果處理的名稱.與action方法的返回值對應.

type屬性: 指定調用哪一個result類來處理結果,默認使用轉發.

標簽體:填寫頁面的相對路徑

-->

<result name="success" type="dispatcher" >/hello.jsp</result>

</action>

</package>

<!-- 引入其他struts配置文件 -->

<include file="cn/itheima/b_dynamic/struts.xml"></include>

<include file="cn/itheima/c_default/struts.xml"></include>

</struts>


配置web.xml中的filter參數


<!-- 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>


//------------------------------------------------------------------------------------------------------------------------


struts默認常量配置:

默認配置文件:struts2-core-2.3.24.jar/org.apache.struts2/default.properties


修改默認常量的方法:(按順序讀取配置文件中的信息,可能會覆蓋)



方式1:src/struts.xml

<!-- i18n:國際化. 解決post提交亂碼 -->

<constant name="struts.i18n.encoding" value="UTF-8"></constant>

<!-- 指定反問action時的後綴名

http://localhost:8080/struts2_day01/hello/HelloAction.do

-->

<constant name="struts.action.extension" value="action"></constant>

<!-- 指定struts2是否以開發模式運行

1.熱加載主配置.(不需要重啟即可生效)

2.提供更多錯誤信息輸出,方便開發時的調試

-->

<constant name="struts.devMode" value="true"></constant>

方式2:在src下創建struts.properties

struts.i18n.encoding=UTF8

方式3:在項目的web.xml中

<!-- 配置常量

<context-param>

<param-name>struts.i18n.encoding</param-name>

<param-value>UTF-8</param-value>

</context-param>

-->


默認常量的默認配置:


<package name="default" namespace="/default" extends="struts-default" >

<!-- 找不到包下的action,會使用Demo2Action作為默認action處理請求 -->

<default-action-ref name="Demo2Action"></default-action-ref>

<!-- method屬性:execute -->

<!-- result的name屬性:success -->

<!-- result的type屬性:dispatcher 轉發 -->

<!-- class屬性:com.opensymphony.xwork2.ActionSupport -->

<action name="Demo2Action" >

<result >/hello.jsp</result>

</action>

</package>


方法的動態調用:


<struts>

<!-- 1,配置動態方法調用是否開啟常量

默認是關閉的,需要開啟

-->

<constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>

<package name="dynamic" namespace="/dynamic" extends="struts-default" >

<!-- 動態方法調用方式2:通配符方式

使用{1} 取出第一個星號通配的內容

-->

<action name="Demo1Action_*" class="cn.itheima.b_dynamic.Demo1Action" method="{1}" >

<result name="success" >/hello.jsp</result>

</action>

</package>

</struts>

//--------------------------------------------------------------------------


action類的詳解

//方式1: 創建一個類.可以是POJO

//POJO:不用繼承任何父類.也不需要實現任何接口.

//使struts2框架的代碼侵入性更低.

public class Demo3Action {

}


//方式2: 實現一個接口Action

// 裏面有execute方法,提供action方法的規範.

// Action接口預置了一些字符串.可以在返回結果時使用.為了方便

public class Demo4Action implements Action {

@Override

public String execute() throws Exception {

return null;

}

}


//方式3: 繼承一個類.ActionSupport

// 幫我們實現了Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable

//如果我們需要用到這些接口的實現時,不需要自己來實現了.

com.opensymphony.xwork2.包下的;

public class Demo5Action extends ActionSupport{

}


struts2的配置