Struts2&&AJAX

AJAX是异步JavaScript和XML的缩写。从本质上讲,一个JavaScript可以发送一个HTTP请求并直接更新页面的一部分,不用通过传统的POST或GET方式刷新整个页面。更妙的是,一个页面可以包含几个JavaScript的同步(异步)的要求。

关键的一点是,当一个脚本发送一个“Ajax请求(XHR)时,服务器并不知道它来自哪个脚本,但可以像任何其他请求一样处理它。 Ajax如此成功的原因之一是与现有的服务器技术(包括Struts)之间进行很好的工作。

AJAX的请求是相同的,但是响应却是不同的。不是返回一整个页面或者重新显示一个页面,AJAX将返回一个页面的一部分,响应可以采取的形式包括:XML、HTML、纯文本格式,另一个脚本,或任何其他可能要调用脚本。

在Struts1和Struts2中,响应可以返回任何数据类型。Struts不局限于转发到一个服务页面,可以这样做:


response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Hello World!  This is an AJAX response from a Struts Action.");
out.flush();
return null;

在Struts2中,可以使用流做同样的事情:

Java代码:

package actions;

import java.io.InputStream;
import java.io.StringBufferInputStream;
import com.opensymphony.xwork2.ActionSupport;

public class TextResult extends ActionSupport  {
    private InputStream inputStream;
    public InputStream getInputStream() {
        return inputStream;
    }

    public String execute() throws Exception {
        inputStream = new StringBufferInputStream("Hello World! This is a text string response from a Struts 2 Action.");
        return SUCCESS;
    }
}

xml文件:

<action name="text-result" class="actions.TextResult">
    <result type="stream">
        <param name="contentType">text/html</param>
        <param name="inputName">inputStream</param>
    </result>
</action>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值