struts2-06

Struts2的Action访问Servlet API

1、可以通过ActionContext访问Servlet API,此种方式没有侵入性

//将登录信息设置到session中(借助session演示重定向问题)

ActionContext.getContext().getSession().put("user", username); 

//设置到request中(采用如下方式访问request对象 )

ActionContext.getContext().put("user", username);

//想访问Application(采用如下方式访问Application对象 )    

ActionContext.getContext().getApplication().put("user", username);

//使用request.getParameter取得表单数据

ActionContext.getContext().getParameters().get("username");

2、在Struts2中默认为转发,也就是标签中的type=”dispatcher” .

<!-- type的默认值为dispatcher,就是type="dispatcher,表示转发" -->
<result name="login" type="dispatcher">/login.jsp</result>
<!-- type="redirect",可以重定向到任何一个web资源,如:jsp或Action 如果要重定向到Action,需要写上后缀:xxxx.action-->  
<!--type="redirectAction",可以重定向到Action,不需要写后缀,此种方式更通用些,不会因为后缀的改变影响配置-->

3、关于Struts2的type类型,也就是Result类型,他们都实现了共同的接口Result,都实现了execute方法
他们体现了策略模式,具体Result类型参见:struts-default.xml文件:

    <result-types>
        <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
        <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
        <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
        <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
        <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
        <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
        <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
        <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
        <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
        <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
    </result-types>  
我们完全可以自己根据需求扩展Result类型

4、全局Result和局部Result

局部result

<action     name="mustlogin"class="com.bjpowernode.struts2.MustLoginAction" method="add">
<result>/must_login.jsp</result>
<result name="login" type="redirect">/login.jsp </result>
</action>

全局result

<global-results>
    <result name="login" type="redirect">/login.jsp </result>
</global-results>

你可能感兴趣的:(struts,struts2.0)