`
braveCS
  • 浏览: 73998 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Result相关

阅读更多

本文大部分copy api。仅作平时查找,质量不高。

内置Result实现类:

chain

com.opensymphony.xwork2.ActionChainResult

dispatcher默认

org.apache.struts2.dispatcher.ServletDispatcherResult

freemarker

org.apache.struts2.views.freemarker.FreemarkerResult

httpheader

org.apache.struts2.dispatcher.HttpHeaderResult

redirect

org.apache.struts2.dispatcher.ServletRedirectResult

redirectAction

org.apache.struts2.dispatcher.ServletActionRedirectResult

stream

org.apache.struts2.dispatcher.StreamResult

velocity

org.apache.struts2.dispatcher.VelocityResult

xslt

org.apache.struts2.views.xslt.XSLTResult

plainText

org.apache.struts2.dispatcher.PlainTextResult

 

chain

Action链式处理的结果类型

1This result invokes an entire other action, complete with it's own interceptor stack and result.

2)代码中有一句actionProxy.execute()连接下一个[action流程](包括拦截器,actionpreResultListenersresult)。下一次[action流程]使用上一次[action流程]ActionContext(这么多action属于一次http请求,且是同一个线程)。

3HistoryAction用于防止循环调用actionskipActions用于标记哪些[action流程]不用检查是否已经运行过。

4)可用来forward action,下面的dispatch类型不能forward action,redirect[action]类型是redirect action。重新创建一个ActionProxy再跑一次xwork。

【参数】

actionName

默认,接着要串联的action

namespace

used to determine which namespace the Action is in that we're chaining. If namespace is null, this defaults to the current namespace

Method

used to specify another method on target action to be invoked. If null, this defaults to execute method

skipActions

可选,the list of comma separated action names for the actions that could be chained to

【例子 】

<package name="public" extends="webwork-default">
     <!-- Chain creatAccount to login, using the default parameter -->
     <action name="createAccount" class="...">
         <result type="chain">login</result>
     </action>

     <action name="login" class="...">
         <!-- Chain to another namespace -->
         <result type="chain">
             <param name="actionName">dashboard</param>
             <param name="namespace">/secure</param>
         </result>
     </action>
 </package>

 <package name="secure" extends="webwork-default" namespace="/secure">
     <action name="dashboard" class="...">
         <result>dashboard.jsp</result>
     </action>
 </package>

 

 

dispatcher

Includes or forwards to a view (usually a jsp).使用RequestDispatch的forward或include方法转发到another resource (servlet, JSP file, or HTML file) on the server

【参数】

location :默认 the location to go to after execution (ex. jsp).

parse true by default. If set to false, the location param will not be parsed for Ognl expressions. 该参数指定是否允许杂实际视图名字中使用OGNL表达式,该参数默认为true。如果设置该参数为false,则不允许在实际视图名中使用表达式。通常无须修改该属性。

 

stream

A custom Result type for send raw data (via an InputStream) directly to the HttpServletResponse. Very useful for allowing users to download content. 。这些参数也可在valuestack上定义

【参数】

contentTypethe stream mime-type as sent to the web browser (default = text/plain).

contentLengththe stream length in bytes (the browser displays a progress bar).

contentDispostion the content disposition header value for specifing the file name (default = inline, values are typically filename="document.pdf".

inputNamethe name of the InputStream property from the chained action (default = inputStream). ,或在the invocation variable stack

bufferSize - the size of the buffer to copy from input to output (default = 1024).

使用stream类型返回比使用[action中返回void并使用response控制输出]在某些情况下有用,比如在客户端显示返回内容之前要作检查,类似PreResultListener的功能。

【例】

   

<action name="getNations" class="action.PlayAmountAction" method="getNations">   
<result name="success" type="stream"></result>   
</action>   
  
protected void configureStreamResult(String content)   
{   
    /**  
     *  protected String contentType = "text/plain";  
     *  protected String contentLength;  
     *  protected String contentDisposition = "inline";  
     *  protected String contentCharSet ;  
     *  protected String inputName = "inputStream";  
     *  protected InputStream inputStream;  
     *  protected int bufferSize = 1024;  
     *  protected boolean allowCaching = true;  
     */  
    ValueStack vs=ActionContext.getContext().getValueStack();   
    ByteArrayInputStream bais=null;   
    try {   
        bais = new ByteArrayInputStream(content.getBytes("UTF-8"));   
    } catch (UnsupportedEncodingException e) {   
        // TODO Auto-generated catch block   
        e.printStackTrace();   
    }   
    vs.set("inputStream", bais);   
    vs.set("contentCharSet", "UTF-8");   
    vs.set("contentType", "application/json");   
    vs.set("contentLength",bais.available());   
    vs.set("bufferSize", bais.available());   
    vs.set("allowCaching", false);         
}  

 

 

freemarker

使用Freemarker模板引擎渲染视图。Ftl数据如何绑定在ActionContext那一篇文中。

FreemarkerManager类用于配置模板加载路径:可以是以下2

1relative to the web root folder. eg /WEB-INF/views/home.ftl

2A classpath resuorce. eg com/company/web/views/home.ftl

【参数】

This result type takes the following parameters:

location :默认 the location of the template to process.

Parsetrue by default. If set to false, the location param will not be parsed for Ognl expressions.

contentTypedefaults to "text/html" unless specified.

httpheader

用于控制特殊的HTTP行为。A custom Result type for setting HTTP headers and status by optionally evaluating against the ValueStack.

【参数】

status the http servlet response status code that should be set on a response.

parse true by default. If set to false, the headers param will not be parsed for Ognl expressions.

headers header values.

【例子】

 <result name="success" type="httpheader">

   <param name="status">204</param>

   <param name="headers.a">a custom header value</param>

   <param name="headers.b">another custom header value</param>

 </result>

redirect

Calls the sendRedirect method to the location specified. The response is told to redirect the browser to the specified location (a new request from the client). The consequence of doing this means that the action (action instance, action errors, field errors, etc) that was just executed is lost and no longer available. This is because actions are built on a single-thread model. The only way to pass data is through the session or with web parameters (url?name=value) which can be OGNL expressions.

【参数】

location :默认 the location to go to after execution.

Parsetrue by default. If set to false, the location param will not be parsed for Ognl expressions.

redirectAction

This result uses the ActionMapper provided by the ActionMapperFactory to redirect the browser to a URL that invokes the specified action and (optional) namespace. This is better than the ServletRedirectResult because it does not require you to encode the URL patterns processed by the ActionMapper in to your struts.xml configuration files. This means you can change your URL patterns at any point and your application will still work. It is strongly recommended that if you are redirecting to another action, you use this result rather than the standard redirect result.

 

velocity

处理velocity模板

xslt

处理xslt模板

plainText

不处理,直接显示文件

PreResultListener

PreResultLIstener是一个监听接口,可以在Action完成控制处理后,系统转入实际的物理视图之间被回调

Struts2应用可由Action、拦截器添加PreResultListener监听器,添加PreResultListener监听器通过ActionInvocationaddPreResultListener()方法完成

1Action添加了PreResultListener监听器,该监听器就可以在应用转入实际物理视图之前回调该监听器的beforeResult()方法;

2)拦截器添加了PreResultListener监听器,该监听器会对该拦截器设置可以拦截的所有Action起作用。

beforeResult(ActionInvocation invocation, String resultCode)

resultCode是指<result name=””>name的值,即视图的逻辑名。

Interceptor(s)àactionàpreResultListeneràresultàinterceptor(s)

如果action中的方法返回void,这里的resultCode 就是null

 

 

分享到:
评论

相关推荐

    result接口jar包.rar

    本篇文章将深入探讨“result接口”和相关的JAR包,以及它们在实际开发中的应用。 首先,让我们理解“result接口”。在软件工程中,接口是一种定义了特定功能的合同,它规定了类或对象必须实现的方法。Result接口很...

    struts2 Result类型

    在“Struts2_1500_ResultType”这个压缩包文件中,可能包含了Struts2框架的源代码、相关的示例项目、文档或者自定义Result类型的实现。通过深入研究这些内容,你可以更全面地掌握Struts2 Result类型的使用和扩展方法...

    Data_Result.zip

    这个“Data_Result.zip”压缩包文件包含了与ICP算法应用相关的多种数据和结果,让我们来详细探讨一下这些知识点。 首先,ICP算法是一种迭代方法,其主要目的是找到两个点云之间的最佳变换,使得一个点云中的点能与...

    teaching_result_evaluation.zip

    标题“teaching_result_evaluation.zip”表明这是一个与教学结果评估相关的压缩文件,可能包含了关于教育质量分析、学生表现评价或者教学效果统计的资料。描述中的“hist teaching-result-evaluation”暗示了内容...

    async_await_wait_result.rar

    `Wait`方法是另一个与异步编程相关的概念,它用于阻塞当前线程直到异步操作完成。这通常不推荐在`async`方法中使用,因为这样会丢失异步的优势,可能导致UI冻结或其他线程同步问题。然而,在某些情况下,如在非`...

    result.zip

    标题“result.zip”很可能是一个包含了某个特定结果或输出的压缩文件。从描述中我们只看到文件名本身,没有提供更多的上下文信息。然而,我们可以基于压缩包内的一个子文件“《模型假设(1)(1)(1)(1)(1)》文档检测...

    springmvc-demo06-ResultFul.zip

    在配置方面,`web.xml`或Spring Boot的配置文件中会包含Spring MVC的相关设置,比如DispatcherServlet的配置、视图解析器的配置等。开发者可能还使用了Spring Data JPA或MyBatis这样的持久层框架,来简化数据库操作...

    svm_result.txt

    这是ROC曲线绘制和AUC值计算的数据文件。大家在用Python绘制ROC曲线是可下载使用这个文件。相关代码也能够在我的博客里找到。 https://blog.csdn.net/weixin_44830815

    61963875kmeans-output-result-document

    4. **www.pudn.com.txt**:这个文件可能是从网络论坛或其他来源下载资源时附带的说明或版权信息,可能与k-means算法本身关系不大,但可能提供了获取更多相关资源的链接。 k-means算法的应用广泛,可以用于市场细分...

    Test_move_result_object.rar_move-result-object

    `Test_move_result_object.rar_move-result-object`这个标题暗示我们正在处理一个与测试相关的项目,更具体地说,它可能是一个测试用例,用于验证某个功能或操作,比如移动(move)结果对象。描述中提到的“extends ...

    result.txt

    - **标题**:“result.txt” - **描述**:这是一个经过预处理的新闻分类数据集,包含十个不同的新闻类别。 - **标签**:“新闻分类数据” #### 2. 数据集结构与内容 - 该数据集由多个新闻样本组成,每个样本包含...

    SHOUG文档分享-11g性能优化新技术-SQL-Query-Result-Cache-SHOUG成员罗敏1

    7.4 Result Cache相关技术点 Result Cache与并行执行、分布式查询、Materialized Views和PL/SQL等特性有紧密关联。例如,对于并行查询,Result Cache可以在多个并行服务器之间共享结果,提高并行执行的效率。同时,...

    result_submission.zip

    【标题】"result_submission.zip" 是一个压缩包文件,通常用于存储多个文件或文件夹,以便于传输或存储。在IT行业中,这种格式被广泛应用于数据提交、项目成果分享、软件开发过程中的代码版本控制等场景。zip文件...

    Result,科特林经营成败模型.zip

    4. 测试用例,验证 `Result` 类及相关功能的正确性。 通过学习和使用这个开源项目,开发者能够深入理解如何在Kotlin中创建和使用自定义类型来管理错误,并在实践中提升代码质量。此外,了解并实践这样的错误处理...

    Result:简单友好的结果抽象

    如果失败,`ErrorMessage`则提供了有关失败原因的信息。 在实际应用中,我们可以将`Result&lt;T&gt;`类用于异步任务,如`Task&lt;Result&lt;T&gt;&gt;`,这样可以避免使用异常作为正常流程控制,并且使代码更具预测性和可读性。例如:...

    Python库 | return-result-1.0.1.tar.gz

    本资源是一个名为"return-result-1.0.1.tar.gz"的压缩包,它包含了一个Python库,该库可能用于处理返回结果或者数据处理相关的任务。下面将详细解释与这个库相关的知识点。 首先,让我们了解一下`return-result-...

    前端开源库-result-core

    通过阅读源码和相关文档,开发者可以深入理解库的工作原理,学习如何在自己的项目中有效利用它。 总的来说,"result-core"是前端开发中的一个重要工具,它简化了结果处理的流程,使得处理和管理数据结果变得更加...

    struts2 xslt result 实现

    于是就研究使用Struts2的XSLT result方式来做页面显示。 网上相关的内容非常的少,我也研究了好久才玩转的。一开始总是有一些莫名其妙的问题出现,但最后基本上都是和配置相关的比较多。现在这个例子是整个工程项目...

    Struts2--4.结果集-- result元素

    在提供的压缩包文件中,我们可以看到几个与`result`元素相关的示例: - `Struts2_1800_ResultWithParams`:这个例子可能展示了如何使用`result`元素配合`param`属性传递参数到结果页面。这在需要动态地改变页面内容...

Global site tag (gtag.js) - Google Analytics