首页 > 开发 > AJAX > 正文

Struts2和Ajax数据交互示例详解

2024-09-01 08:26:59
字体:
来源:转载
供稿:网友

前言

我们从Web 2.0的随波逐流,Ajax的大放异彩说起,Struts2框架自己整合了对Ajax的原生支持(struts 2.1.7+,之前的版本可以通过插件实现),框架的整合只是使得JSON的创建变得异常简单,并且可以简单的融入到Struts2框架中,当然这只是在我们需要JSON的时候才会显得流光溢彩。

ajax请求在项目中常常使用,今天就平时掌握的总结一下,关于使用ajax请求到Struts2中的action时,前台页面与后台action之间的数据传递交互问题。

这里我主要记录下自己所掌握的几种方式。可以根据自己平时项目的需求来进行选择。

 1.使用stream类型的result

此种类型可以直接让Struts2中的action向客户端浏览器生成文本响应。

示例:

jsp页面:

<%@ taglib prefix="s" uri="/struts-tags" %><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>ajax提交登录信息</title> <%--导入js插件--%> <script src="${PageContext.request.contextPath}/demo/js/jquery-1.4.4.min.js" type="text/javascript"></script></head><body><h3>异步登录</h3><s:form id="loginForm" method="POST"> <s:textfield name="username"/> <s:textfield name="psw"/> <input id="loginBtn" type="button" value="提交"></s:form><div id="show" style="display:none;"></div></body><script type="text/javascript"> $("#loginBtn").click(function(){ $("#show").hide(); //发送请求login 以各表单里歌空间作为请求参数 $.get("login",$("#loginForm").serializeArray(),  function(data,statusText){  $("#show").height(80)   .width(240)   .css("border","1px solid black")   .css("border-radius","15px")   .css("backgroud-color","#efef99")   .css("color","#ff0000")   .css("padding","20px")   .empty();  $("#show").append("登录结果:"+data+"<br/>");  $("#show").show(600); },"html");//指定服务器响应为html });</script></html>

处理逻辑的action:

/** * Description:eleven.action * Author: Eleven * Date: 2018/1/26 18:09 */public class LoginAction extends ActionSupport{ private String username; private String psw; //输出结果的二进制流 private InputStream inputStream; public String login() throws Exception{ if(username.equals("tom")&& psw.equals("123")){  inputStream = new ByteArrayInputStream("恭喜您,登录成功".getBytes("UTF-8")); }else{  inputStream = new ByteArrayInputStream("对不起,登录失败".getBytes("UTF-8")); } return SUCCESS; } //提供get方法 public InputStream getInputStream() { return inputStream; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPsw() { return psw; } public void setPsw(String psw) { this.psw = psw; }}            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表