`
zhangsibei
  • 浏览: 15619 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

关于Struts2自定义Result-type

阅读更多

struts2 提供的几种result-type有dispatcher,chain,freemarker,httpheader,redirect,redirectAction,stream,velocity,xslt,plaintext。挺丰富的。但是当前台为一个ajax调用,而且需要的返回结果只需要为String类型,或者是JSON类型时,这个时候就比较抓狂了。

    所以不得不再深入研究下struts的代码。发现一个比较好的实现方法,即自己定义一个resultType实现Result接口即可。

比如为ajax自定义的result 该类主要提供ajax的字符串结果

package com.mypack.ajax

public class AJAXResult implements Result

{

 

private String ajax;

private HttpServletResponse rep;

/**

*

*/

private String chartSet = "GBK";

private static final long serialVersionUID = 3841999252996023829L;

 

public AJAXResult()

{

}

 

public void execute(ActionInvocation invocation) throws Exception

{

ajax = (String) invocation.getStack().findValue("ajax");

if (ajax == null)

{

throw new NullPointerException("没有定义ajax字符串结果集合,或者没有提供get方法");

}

rep = ServletActionContext.getResponse();

rep.reset();

rep.setContentType("text/html; charset=" + chartSet);

// rep.setCharacterEncoding(chartSet);

ServletOutputStream os = rep.getOutputStream();

os.write(ajax.getBytes(chartSet));

os.flush();

os.close();

}

 

public String getChartSet()

{

return chartSet;

}

public void setChartSet(String chartSet)

{

this.chartSet = chartSet;

}

}

而我们可以在struts.xml里面配置

<package name="ajax-default">

<result-types>

<result-type name="ajax"

class="com.mypack.ajax.AJAXResult">

</result-type>

</result-types>

<action name="cardInfo" class="CardInfoACT">

<result name="ajax" type="ajax"/>

</action>

</package>

 

当然,我们也可以将这个类封装到另外的包里,然后放到全局的result里被所有的类引用该类型。前期是要引用ajax-default这个包。

分享到:
评论

相关推荐

    struts2-json-plugin-2.3.8.jar

    在Struts2中,你可以通过在Action类的方法上添加特定的注解,如`@Result(type = "json")`,来指示该方法应该返回JSON格式的数据。 Struts2 JSON Plugin 2.3.8版本包含了以下关键特性: 1. 自动处理Action结果:当...

    struts2自定义结果类型demo

    在Struts2中,结果类型(Result Type)是动作执行后处理结果的关键部分,它决定了如何将控制权转移给下一个资源,如JSP、FreeMarker模板或者重定向到其他URL。自定义结果类型允许开发者根据项目需求定制化结果处理...

    struts2-json-plugin-2.1.8jar包.zip

    &lt;result-type name="json" class="org.apache.struts2.json.JSONResult"/&gt; &lt;/result-types&gt; ``` 接着,在Action类中,你可以定义一个返回JSON的Action方法,比如: ```java public class MyAction { public ...

    struts2 相关jar包 包含json-lib-2.1.jar+struts2-json-plugin-2.1.8.1.jar

    Struts2是一个非常著名的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用程序。在Web开发领域,Struts2以其灵活性、强大的MVC(Model-View-Controller)架构和丰富的插件库而备受赞誉。这个压缩包包含了...

    struts2-core-2.1.8.1 xwork-core-2.1.6源码

    2. **拦截器(Interceptors)**:Struts2的拦截器是其强大的特性之一,允许开发者在Action执行前后添加自定义逻辑。这些拦截器可以实现登录验证、日志记录、性能监控等多种功能。在源码中,你可以看到`...

    struts2 result type 介绍

    开发者还可以自定义Result Type,通过创建新的Java类实现`com.opensymphony.xwork2.Result`接口,并在配置文件中注册这个类型。 在Action配置中,我们可以通过`&lt;result&gt;`元素来指定Action的特定结果。`&lt;result&gt;`...

    struts2-upload-jar

    Struts2的核心在于它的拦截器栈,它允许开发者自定义拦截器,实现各种功能,如日志记录、事务管理、权限控制等。 Struts2-upload-jar插件的使用通常涉及到以下几个关键知识点: 1. **配置文件**:在Struts2框架中...

    Struts2-Json-Plugin 的使用.pdf

    Struts2-Json-Plugin 是一个专门为 Struts2 框架设计的插件,它使得在Struts2中处理Ajax请求并返回JSON数据变得更加简便。这个插件提供了"json"结果类型,允许Action直接被序列化为JSON格式,极大地简化了开发过程。...

    struts2-xwork-ognl的源文件(jar包)

    `struts2-core-2.3.7-sources.jar` 是Struts2核心库的源代码,其中包含了许多关键组件,如Action、拦截器(Interceptor)、结果类型(Result Type)以及配置管理等。Action是Struts2的核心,它代表了用户请求的业务...

    Struts2 自定义标签

    在Struts2中,自定义标签是开发者扩展框架功能和简化视图层编码的重要手段。自定义标签允许将复杂的逻辑封装到可重用的组件中,提高代码的可读性和可维护性。 在Struts2中创建自定义标签,通常涉及以下几个步骤: ...

    Struts2 技术内幕-深入解析Struts2架构设计与实现原理

    6. **结果类型(Result Type)**:结果类型定义了Action执行后的响应方式,如重定向、转发、流或者使用模板技术渲染视图。Struts2内建了多种结果类型,并支持自定义结果类型。 7. ** strut2-struts2-core 包**:这...

    Struts2-Scan-master.zip

    此外,开发人员需要了解Struts2的配置和生命周期,因为很多漏洞都源于不正确的配置或者用户自定义拦截器。例如,不安全的Content-Type设置可能导致命令注入,而未正确过滤的用户输入可能触发OGNL(Object-Graph ...

    struts2--json包

    5. **自定义JSON序列化和反序列化**:Struts2允许我们通过实现`org.apache.struts2.json.JSONWriter`接口来自定义JSON序列化过程,或者通过`org.apache.struts2.json.JSONProcessor`接口自定义反序列化过程。...

    Struts2返回json -- demo

    这篇博客"Struts2返回json -- demo"可能是关于如何在Struts2框架中实现JSON响应的教程。 在Struts2中,返回JSON数据主要依赖于`struts2-json-plugin`插件。首先,你需要确保在你的项目中已经添加了这个插件的依赖。...

    struts-xwork-core源码

    Struts-xwork-core是Struts2框架的核心组件,它提供了Action和结果的执行模型,以及类型转换、数据验证和国际化等功能。在这个压缩包中,包含了该核心库的源代码,对于学习和理解Struts2的工作原理及其内部机制极具...

    Struts2--result配置的各种视图转发类型

    例如,可以通过继承`org.apache.struts2.dispatcher.mapper.ActionMapper`接口并注册为插件来创建自定义的Result。 在实际项目中,根据业务需求选择合适的结果类型是至关重要的。合理利用这些结果类型,不仅可以...

    自定义的struts2的resulttype

    2. **配置结果类型**:在Struts2的配置文件(通常为struts.xml或struts.properties)中,我们需要注册刚刚创建的自定义ResultType。通过`&lt;constant&gt;`标签来设置`struts.objectFactory`属性,或者直接在`&lt;package&gt;`...

    struts2下jquery-ui的全部实例

    - **Action类与Result类型**:在Struts2中,Action类是业务逻辑的载体,Result类型负责决定请求处理后的跳转页面或资源。 - **Interceptor拦截器**:用于在Action调用前后执行特定逻辑,如登录验证、日志记录等。 ...

    struts-2.5.18-all.zip

    首先,Struts 2的核心功能在于它的Action和Result机制。Action是业务逻辑的载体,接收并处理来自用户请求的数据,然后通过Result将控制权转移给其他页面或者服务。Result则是Action执行后返回的结果,它可以是重定向...

Global site tag (gtag.js) - Google Analytics