首页 > 代码库 > 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入门第三结