跟我学AJAX技术如何应用AJAX技术实现实时订单的Web应用示例第二部分.docx
- 文档编号:7290510
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:11
- 大小:185KB
跟我学AJAX技术如何应用AJAX技术实现实时订单的Web应用示例第二部分.docx
《跟我学AJAX技术如何应用AJAX技术实现实时订单的Web应用示例第二部分.docx》由会员分享,可在线阅读,更多相关《跟我学AJAX技术如何应用AJAX技术实现实时订单的Web应用示例第二部分.docx(11页珍藏版)》请在冰豆网上搜索。
跟我学AJAX技术如何应用AJAX技术实现实时订单的Web应用示例第二部分
1.1跟我学AJAX技术——如何应用AJAX技术实现实时订单的Web应用示例(第二部分)
1.1.1在项目中添加Struts相关的Action组件
1、添加Action类
2、设置该Action类的特征参数/processorder,com.px1987.webajax.action.OrderAction
3、将产生出下面的程序代码
4、在struts=config.xml配置文件中添加相关的配置项目
5、编程OrderAction功能实现的代码
packagecom.px1987.webajax.action;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.struts.action.Action;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionForward;
importorg.apache.struts.action.ActionMapping;
importcom.px1987.webajax.actionform.OrderActionForm;
importjava.util.*;
importjava.io.*;
publicclassOrderActionextendsAction
{
privateHashtabletitles;
finalprivateStringvalidID="yang";//实际改变为对数据库表访问
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse)
{
OrderActionFormorderActionForm=(OrderActionForm)form;
this.populateTitles();
Stringoption=null;
Stringkey=null;
String[]list=null;
StringxmlString=null;
StringsubscriptionID=null;
//下面的代码是实现实时校验
subscriptionID=request.getParameter("subscriptionID");
if(subscriptionID!
=null)
{
Stringstatus="
this.writeResponse(response,status);
}
/**
下面的代码是实现根据用户对“作者”或者“出版社”的类型选择来动态地获得对应的信息以放到第一下拉列表框中
*/
option=request.getParameter("select");
key=request.getParameter("list");
if(option!
=null)
{
if(option.equals("author"))
{
list=this.populateAuthors();
xmlString=this.getXMLData(list);
this.writeResponse(response,xmlString);
}
elseif(option.equals("pubs"))
{
list=this.populatePubs();
xmlString=this.getXMLData(list);
this.writeResponse(response,xmlString);
}
}
/**
下面的代码是实现根据用户对第一下拉列表框中的选择的项目,对应地获得相应的信息并在第二个下拉列表框中显示输出
*/
if(key!
=null)
{
list=this.getTitle(key);
xmlString=this.getXMLData(list);
this.writeResponse(response,xmlString);
}
returnnull;
}
publicvoidwriteResponse(HttpServletResponseresp,Stringoutput)
{
resp.setContentType("text/xml;charset=GBK");
resp.setHeader("Cache-Control","no-cache");
try
{
resp.getWriter().write(output);
}
catch(IOExceptione)
{
System.out.println(e.getMessage());
}
}
publicString[]getTitle(Stringkey)
{
return(String[])titles.get(key);
}
privateString[]populateAuthors()
{//在实际应用中,该数据可以来源于某个数据库表的某列
String[]authors=newString[7];
authors[0]="---";
authors[1]="张三";
authors[2]="李四";
authors[3]="王五";
authors[4]="张四";
authors[5]="李五";
authors[6]="王六";
returnauthors;
}
privateStringgetXMLData(String[]data)
{
StringxmlString=
"
xmlversion=\"1.0\"encoding=\"GB2312\"standalone=\"yes\"?
>";
xmlString=xmlString+"
xmlString=xmlString+"
for(inti=0;i { xmlString=xmlString+" } xmlString=xmlString+""; returnxmlString; } privateString[]populatePubs() {//在实际应用中,该数据可以来源于某个数据库表的某列 String[]pubs=newString[5]; pubs[0]="---"; pubs[1]="出版社1"; pubs[2]="出版社2"; pubs[3]="出版社3"; pubs[4]="出版社4"; returnpubs; } privatevoidpopulateTitles() { titles=newHashtable(); titles.put("A0",newString[]{"**空白**"}); titles.put("A1",newString[]{"书名称1"}); titles.put("A2",newString[]{"书名称2"}); titles.put("A3",newString[]{"书名称3"}); titles.put("A4",newString[]{"书名称4"}); titles.put("A5",newString[]{"书名称5"}); titles.put("A6",newString[]{"书名称6"}); titles.put("P0",newString[]{" "}); titles.put("P1",newString[]{"书名称7", "书名称8","书名称9"}); titles.put("P2",newString[]{"书名称10"}); titles.put("P3",newString[]{"书名称11"}); titles.put("P4",newString[]{"书名称12","书名称13","书名称14","书名称15","书名称16"}); } privatebooleancheckValidID(StringuserInputSubscriptionID) { booleanokOrNot=false; //实际应该通过访问数据库表中的数据来识别 if(this.validID.equals(userInputSubscriptionID)) { okOrNot=true; } else { okOrNot=false; } returnokOrNot; } } 1.1.2测试本示例的最终应用效果 1、执行该页面 2、启动服务器 3、输入http: //localhost: 8080/StrutsAJAXWebApp/order.jsp后,将出现下面的内容 当在ID输入中没有输入时,如果此时产生提交的请求,则将产生下面的错误提示 当在ID输入中输入有效的ID(本例为yang)时,将产生出下面的内容 选择某个作者名称,将出现该作者的图书 而如果选择出版社,则出现下面的内容,并选择某个出版社,则显示该出版社的各个图书。"+data[i]+"
";
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AJAX 技术 如何 应用 实现 实时 订单 Web 示例 第二 部分