Ajax与Struts1或Struts2传递数据

AJAX是异步JavaScript和XML的缩写。基本上,JavaScript可以发出HTTP请求并直接更新页面的某些部分,而无需通过传统的POST或GET并刷新整个页面。更好的是,一个页面可以包含几个JavaScript同时(异步)请求。

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

这不是Ajax请求并且是不同的,他是Ajax响应,不是返回整个页面让浏览器显示(或重新显示),Ajax响应将只返回页面的一部分。响应可以采取XML或HTML,或纯文本,另一个脚本或调用脚本可能想要的任何其他形式。

Struts 1和Struts 2都可以返回任何类型的响应。我们不限于转发到服务器页面。

在Struts 1中,您可以执行以下操作:

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;

在Struts 2中,我们可以对Stream结果做同样的事情。

Struts2 Stream Result Action(“Hello……”可以从回调函数中获得):

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 ByteArrayInputStream("Hello World! This is a text string response from a Struts 2 Action.".getBytes("UTF-8"));
        return SUCCESS;
    }
}

Struts2配置result操作(基本不变):

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

转载于:https://my.oschina.net/myunreal/blog/864197

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值