在使用Action时,我们可以通过将JSON格式的数据返回到Ajax请求中。下面是一个例子:
public class UserAction extends ActionSupport{ private String username; private String password; //getter和setter方法省略 //处理Ajax请求的方法 public String ajaxLogin(){ MapjsonMap = new HashMap (); if("admin".equals(username) && "123456".equals(password)){ jsonMap.put("success",true); jsonMap.put("message","登录成功!"); }else{ jsonMap.put("success",false); jsonMap.put("message","用户名或密码不正确!"); } String result = JSONObject.fromObject(jsonMap).toString();//将Map对象转换为JSON格式的字符串 HttpServletResponse response = ServletActionContext.getResponse(); response.setCharacterEncoding("UTF-8"); response.setContentType("application/json;charset=UTF-8");//设置JSON格式的请求头 try { PrintWriter out = response.getWriter(); out.write(result);//向客户端输出JSON格式的数据 out.flush(); out.close(); } catch (IOException e) { e.printstacktrace(); } return null; } }
在上述代码中,我们定义了一个ajaxLogin()方法来处理Ajax请求。我们创建了一个Map对象,用于存储响应信息。如果用户名和密码正确,我们会将success的值设置为true,否则将success的值设置为false。
接下来,我们将Map对象转换成JSON格式的字符串,并设置响应参数。我们使用ServletResponse对象获取字符输出流,并输出字符串。最后,我们关闭输出流。
这样,我们就实现了将JSON格式的数据返回到Ajax请求中。