Struts 2 学习笔记:Struts 2 中 Ajax 的使用方法

来源:互联网 发布:登陆facebook没网络 编辑:程序博客网 时间:2024/05/21 07:46

计应134(实验班) 罗超

在平时的项目实践中,有的时候需要用到异部调用数据,就要得用到Ajax,通过Struts返回数据其实和平时使用Ajax相差不多,先把ajax的url设置为目标action:

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>唯一的一个页面</title>    <script src="jquery-1.11.3.min.js"></script>    <script>      function clicked(){      $.ajax({        url:"clicked.action",        type:"post",        dataType:"text",        success:function(data){        alert(data);        }      });      }    </script>  </head>    <body>    <button onclick="clicked()">点击这里有惊喜哟</button>  </body></html>

这个页面通过点击按钮事件来访问clicked.action,访问成功之后将得到的数据通过alert提示框打印出来。

struts.xml中做了如下设置:

struts.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts>  <package name="default" extends="json-default">    <action name="clicked" class="com.action.Clicked"></action>  </package></struts>
在struts.xml中,default包继承了json-default,这个包就专门用来做ajax数据的传递,也不用为action设置result。

Clicked.java

package com.action;import org.apache.struts2.ServletActionContext;public class Clicked {public String execute(){String result = "这段字符串是Action返回的";try {result = new String(result.getBytes("UTF-8"), "ISO-8859-1");ServletActionContext.getResponse().getWriter().write(result);} catch (Exception e) {e.printStackTrace();}return null;}}
Clicked.java中,使用了ServletActionContext来得到当前的Response,通过Response的getWriter方法得到PrintWriter,最后调用PrintWriter的write方法写入需要的值。

来张结果图:


值得注意的有以下几点:

1.字符串中有中文出现的时候要进行编码转换,不然很可能会出现乱码;

2.Action中,方法返回值设为空,使页面不跳转;

0 0