Jquery 发送ajax请求,action 或servlet 处理请求,并以xml格式返回数据,交给jquery 处理。
1.jquery 发送请求:
var provinceurl="/Struts2/jquery/selectProvince.action";
$.ajax({
url:provinceurl,
type: 'POST',
dataType: 'xml',
data: {name:"lixueli"},
timeout: 1000,
error: function(){
alert('Error loading XML document');
},
success: function(xml){
alert(xml);
$(xml).find("province").each(function(){
var provinceId=$(this).children("provinceid").text();
var provinceName=$(this).children("provinceName").text();
var tempOption = document.createElement("option");
tempOption.value = provinceId;
tempOption.innerHTML = provinceName;
province.append(tempOption);
});
}
});
2.struts2 action 处理请求
可以有两种方式返回数据
(1)直接在action中输出
public String selectProvince() throws IOException {
response.setContentType("text/xml;charset=utf-8"); //(1)一定要在(2)的前面,不然会乱码
response.setCharacterEncoding("UTF-8"); //(2)
response.setHeader("Cache-Control", "no-cache");
PrintWriter out=response.getWriter(); //(3)一定要在(1)(2)的后面
ProvinceDAO provinceDAO = new ProvinceDAO();
List<Province> list = provinceDAO.getAllProvince();
StringBuilder sb=new StringBuilder();
sb.append("<?xml version='1.0' encoding='UTF-8'?><provinces>");//最外层节点唯一,不然报错
for(Province p:list)
{
sb.append("<province>");
sb.append("<provinceid>"+p.getProvinceId()+"</provinceid>");
sb.append("<provinceName>"+p.getProvinceName()+"</provinceName>");
sb.append("</province>");
}
sb.append("</provinces>");
out.print(sb.toString());
out.flush();
out.close();
return null;
}
这种方法不用返回结果。
<struts>
<include file="struts-default.xml"/>
<package name="/jquery" extends="struts-default" namespace="/jquery">
<action name="selectProvince" class="com.hyts.business.action.xml.JqueryXmlAction" method="selectProvince">
</action>
</package>
</struts>
(2)把数据输出到页面
request.setAttribute("provinces", list);//前台页面取得数据
jsp页面代码:
<?xml version='1.0' encoding='UTF-8'?>//一定放在页面开始位置,否则会报解析错误
<%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="com.hyts.util.*,java.util.*"%>
<%
List<Province> provinces = (List<Province>)request.getAttribute("provinces");
%>
<provinces>
<%
for(Province p:provinces)
{
%>
<province>
<provinceid><%=p.getProvinceId()%></provinceid>
<provinceName><%=p.getProvinceName()%></provinceName>
</province>
<%
}
%>
</provinces>
返回到页面的配置
struts.xml配置
<struts>
<include file="struts-default.xml"/>
<package name="/jquery" extends="struts-default" namespace="/jquery">
<action name="selectProvince" class="com.hyts.business.action.xml.JqueryXmlAction" method="selectProvince">
<result name="success">/jqueryxml/provinces.jsp</result>//数据先传递到页面
</action>
</package>
</struts>
分享到:
相关推荐
这个样例是用JQuery ajax和struts来做的一个小样例,在这个样例中采用两种方式将java Util中的list转换成支json的格式,第一种是用json-lib.jar这个jar包来转换,第二种是采用goole的gson-2.1.jar来转换,大家可以...
主要实现步骤如下: 1、JSP页面使用脚本代码执行ajax请求 2、Action中查询出需要返回的数据,并转换为json类型模式数据 3、配置struts.xml文件 4、页面脚本接受并处理数据!
3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。 4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录进行显示。 5.单数据源配置(兼容Tomcat和Weblogic)。 6.Hibernate...
最新Struts2.3.8 + jquery + ajax + json 学会struts+jq+ajax+json只要4步‵‵经过作者的总结超级简单 1. 导入struts2 及json包 asm-3.3.jar asm-commons-3.3.jar asm-tree-3.3.jar commons-fileupload-1.2.2.jar...
4.2 struts2框架实现数据校验.....................................................................................................................34 第 5章 国际化实现......................................
Struts2,JDBC(连接池),jQuery,Ajax 2)设计思想 MVC和分层设计思想 a.显示层:JSP组件(jQuery,Ajax) b.控制层:Struts2控制器组件、Action组件 c.业务层:Bean组件 d.数据访问层:DAO组件(JDBC) 4.数据库...
Struts2、JDBC+连接池(dbcp)、jQuery+Ajax、javamail、log4j、junit、MySQL 系统架构: 表现层:jQuery+Ajax、Struts2标签+OGNL 控制层:Struts2控制器,Action组件 业务层:JavaBean组件、javamail 数据访问层...
2. Action类相应方法使用封装好的HttpClient相关工具类,准备好HTTP请求的相关参数header参数和body参数并以xml的方式提交HTTP请求; 3. 解析该HTTP请求返回值(XML或JSON); 4. 响应结果; 5. 测试; 备注: 开发...
Struts2 Struts2核心控制流程、Ognl、Action、Interceptor、Result、FreeMarker、Struts2标记库、Struts2扩展、Struts2应用技巧(输入验证、消息国际化、文件上传和下载、防止重复提交等)。 熟练掌握Struts2核心...
struts2,JDBC(连接池),jQuery,Ajax 2)设计思想 MVC和分层设计思想 .... 4.数据库设计 1)dangdang数据库导入 2)数据表功能 a.d_user(用户信息表) 存储了用户信息,涉及登录和注册功能) ..... 5. 搭建工程...
Struts2、JDBC+连接池(dbcp)、jQuery+Ajax、javamail、log4j、junit、MySQL 系统架构: 表现层:jQuery+Ajax、Struts2标签+OGNL 控制层:Struts2控制器,Action组件 业务层:JavaBean组件、javamail 数据访问层...
Java软件开发中,后台中我们可以通过各种框架,像SSH等进行对代码的封装,方便我们对Java代码的编写,例如,Struts,SpringMVC对从前台到action的流程进行封装控制,使我们只需要进行一些简单配置就可以实现;...
\contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...
72.5. Struts 2框架的大致处理流程如下: 68 72.6. Struts体系结构中的组件 69 72.7. struts如何实现国际化 70 72.8. struts2.0的常用标签 71 72.9. action是单实例还是多实例,为什么? 73 72.10. Struts的validate...
弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...