jquery中有多种Ajax方法来获取后台数据,我使用的是$.get()方法,具体的理论我不解释太多,要解释也是从别的地方copy过来的。下面就介绍我的项目中的实现方法。
前台页面:
首先导入jquery的包,这个不解释,自己下载,自己引用。
<script language="JavaScript" src="<%=request.getContextPath()%>/js/jquery/jquery-1.3.2.min.js"></script>
在js中加入如下代码,根据我的项目,为了简便,我使用的回调函数传递回来的后台数据是String型的,例子中传递str参数:
function getJQueryAjax(){ str = "130410113121461017210"; var url = "<%=request.getContextPath()%>/yourAction.do?actionCode=getYourFun&str=" + encodeURI(encodeURI(str))"; $.get(url, function(data) { $("input[name='jquery']").val(data); }); }
后台代码的实现方式,就是构建url中的路径,使得Struts1.x在jsp页面中能够访问到该方法的路径,代码如下:
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; import org.apache.struts.actions.DispatchAction; import java.io.PrintWriter; public class YourAction extends DispatchAction { public ActionForward getYourFun(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception { PrintWriter out = null; try{ request.setCharacterEncoding("GB2312"); response.setContentType("text/html;charset=GB2312"); String icNo = java.net.URLDecoder.decode(request.getParameter("str"), "UTF-8"); out = response.getWriter(); out.print("测试回调返回字符串" + icNo); out.close(); } catch(Exception e){ e.printStackTrace(); out.close(); } return null; } }
其他有关xml的配置,我就不赘述了,各位按自己项目来配置就可以了。