首页 > 代码库 > struts入门第三结

struts入门第三结

一、package配置

1、认知:<package>元素可以把逻辑上相关的一组Action、Result、Intercepter等元素封装起来,形成一个独立        的模块,package可以继承其他的package,也可以作为父包被其他的package继承,比如“<package                    name="FirstStruts"  extends="struts-default">”中,FirstStruts这个包就继承了struts-default这个包。


2、<package>元素有如下属性: 

  • name:包的名称。必须配置

  • extends:要继承的包,后面配置的是被继承的包的名称。可选,默认为struts-default

  • namespace:包的命名空间。可选。默认为"/"(工程)

  • abstract:定义包为抽象的,也就是不能包含Action的定义。可选

补充:namespace配置的是包的命名空间,同一个命名空间里面不能有同名的Action,当然不同的命名空间里面是可以有同名的Action的。类似于Java的包的功能,namespace可以有效的防止action重名的冲突,因为配置了namespace后,在访问action的时候就需要添加namespace来作为action的前缀。如果不配置namespace,表示是默认的namespace,那么访问的时候不需要添加namespace前缀。例:

                    <struts>

<package name="chainTest" extends="struts-default">

<action name="test1" class="cn.java.action.FirstStruts">

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

</action>

</package>

        <package name="chainTestS" namespace="/chainTS"  extends="struts-default">     <action name="test1" class="cn.java.action.FirstStruts">

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

</action>

</package>

                    </struts>

3、访问路径填写

1、若没有配置namespace的,因此在访问的时候,是直接在webcontext下面写要访问的action的名称的,示例如下:

<s:form action="fromAct" method="post" namespace="">

        ......

</s:form>

    <form action="/M-Struts/fromAct" method="post" >

        ......

<form>


2、若配置了namespace,那么访问的时候是必须要添加namespace前缀的,配置namespace的时候“/”表示namespace的根。示例如下:

               <s:form action="fromAct" method="post" namespace="/from">

       ......

 </s:form>


       <form action="/M-Struts/fromAct" method="post" >

        ......

 <form>

二、action配置

1、认知:action映射是struts框架中的基本工作单元action映射就是将一个请求URL(action的名字)映射到一个   action类,当一个请求匹配某个action的名字时,框架就使用这个映射来确定如何处理请求。

 

2、<action>元素有如下属性: 

  • name:action的名称。必须配置,用于匹配url

  • class:action实现类的完整的类名。可选

  • method:执行action类时使用的方法。可选,默认为"execute()"

  • convert:应用于action类型转换的完整类名。可选


3、method

1、默认的method的action写法

         <action name="test1" class="cn.java.action.FirstStruts">

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

</action>

2、指定的method的action写法

         <action name="test1" class="cn.java.action.FirstStruts" method="test">

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

</action>


三、result配置

1、认知:一个result代表了一个可能的输出。当一个Action类的方法执行完成时,它返回的一个字符串   类型的结果码,框架根据这个结果码对应的result,向用户输出。Results配置由两部分组成:一部   分是result,一部分是result类型


2、2、<result>元素有如下属性: 

    • name:指定result的逻辑名。可选

    • type:指定result类型,不同类型的result代表了不同的结果输出。可选


3、type结果类型

    • chain:用于action的链式处理(跳转)*

    • dispacher:用于web资源的集成,包括jsp的集成*

    • FreeMarker:用于FreeMarker的集成

    • httpheader:用于控制特殊的HTTP行为

    • redirect:用于重定向到另外的URL(web资源)*

    • redirectAction:用于重定向到另外的Action*

    • stream:用于向浏览器返回InputStream(一般用于文件下载)*

    • velocity:用于velocity集成

    • xslt:用于XML/XSLT

    • plainText:用于显示某个特定页面的源码*




struts入门第三结