`
VerRan
  • 浏览: 459198 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

联动----续

阅读更多
      前段时间写的关于JSP+servlet+javaBean实现联动的例子,提到存在一个问题就是当再次访问servlet后转回页面后原本页面的数据被刷新掉了。当时我设想如果使用struts实现的话由于他的form的特制,可以避免由于刷新而冲掉数据。最近由于需要对这个进行了实现。
      基本思路:
       首先从页面中利用js获得下拉列表的选中值,然后触发onchange事件,这个事件再次访问转向页面的action这个。在这个action中根据利用js传过来的值再查询数据库,将查询的结果存储到form或者存储到request里,最后再在页面中显示出来。在思路和servlet实现没有什么区别,关键区别在于在最后将出发onchange之前页面的数据重新再付给form,这样页面的数据就不会因为刷新而丢失了。
下面是相关代码:
1.action
     
  1. //卡类型列表信息   
  2.        List typeInfoList = new ArrayList();   
  3.        CardType cardtype = new CardType();   
  4.        cardtype.setCardTyoeSts("A");   
  5.        typeInfoList = this.typeDelegate().findCardTypeByPO(cardtype,   
  6.                getLocalNetId(req));   
  7.        log.debug("typeInfoList.size()=============" + typeInfoList.size());   
  8.        form.setTypeInfoList(typeInfoList);   
  9.        req.setAttribute("typeInfoList", typeInfoList);   
  10.        String cardType = req.getParameter("cardType");   
  11.        List praInfoList;   
  12.        if ((cardType!=null)&&!(cardType.equals(""))) {   
  13.            //动态显示卡面值信息   
  14.            CardParvalue cardPravalue=new CardParvalue();   
  15.            CardType ct=new CardType();   
  16.            ct.setCardTypeId(new Long(cardType));   
  17.            praInfoList = new ArrayList();   
  18.            cardPravalue.setCardParvalueSts("A");   
  19.            cardPravalue.setCardType(ct);   
  20.            praInfoList = this.praDelegate().findCardParvalueByVO(cardPravalue,   
  21.                    getLocalNetId(req));   
  22.            log.debug("---------------praInfoList.size==========" +   
  23.                      praInfoList.size());   
  24.          form.setCardTypeName(cardType);              
  25.            form.setParaValueInfoList(praInfoList);   
  26.        }   
  27.        else{   
  28.            praInfoList=null;   
  29.        }   
  30.        req.setAttribute("praInfoList", praInfoList);  

2. 页面代码

  1.                   <td align="right">卡类型:td>  
  2. <td align="left">  
  3.   <logic:equal name="cardBatchForm" scope="request" value="P">  
  4.     <html:select property="cardTypeName" style="width:120px " onchange="select()">  
  5.       <html:option value="">请选择...html:option>  
  6.       <html:options collection="typeInfoList" property="cardTypeId" labelProperty="cardTypeName"/>  
  7.     html:select>  
  8.   logic:equal>  
  9.   <logic:notEqual name="cardBatchForm" property="centerFlag" value="P">  
  10.     <html:select property="cardTypeName" style="width:120px "onchange="select()">  
  11.                         <html:option value="">请选择...html:option>  
  12.       <html:options collection="typeInfoList" property="cardTypeId" labelProperty="cardTypeName"/>>  
  13.     html:select>  
  14.   logic:notEqual>  
  15. td>  
  16. <logic:empty name="praInfoList">  
  17. <td align="right">卡面值:td>  
  18. <td align="left">  
  19.   
  20.     <html:select property="cardParvalue" style="width:120px ">  
  21.       <html:option value="">请选择...html:option>  
  22.      html:select>  
  23.   
  24. td>  
  25. logic:empty>  
  26. <logic:notEmpty name="praInfoList">  
  27. <td align="right">卡面值:td>  
  28. <td align="left">  
  29.   <logic:equal name="cardBatchForm" scope="request" value="P">  
  30.     <html:select property="cardParvalue" style="width:120px ">  
  31.       <html:option value="">请选择...html:option>  
  32.       <html:options collection="praInfoList" property="cardParvalueId" labelProperty="cardParvalue"/>  
  33.     html:select>  
  34.   logic:equal>  
  35.   <logic:notEqual name="cardBatchForm" property="centerFlag" value="P">  
  36.     <html:select property="cardParvalue" style="width:120px ">  
  37.       <html:option value="">请选择...html:option>  
  38.       <html:options collection="praInfoList" property="cardParvalueId" labelProperty="cardParvalue"/>  
  39.     html:select>  
  40.   logic:notEqual>  
  41. td>  
  42. logic:notEmpty>  

3. 调用的js

  1. function select(){   
  2.   thisForm=document.forms[0];   
  3.   var cardType=thisForm.cardTypeName.value;   
  4.   
  5.   window.location="xxAction.do?method=xx&cardType="+cardType;   
  6. }  

4. 后记
    其实想想用servlet同样可以实现这样的效果,用struts与之区别关键就是在于他用了form来对数据进行存储和显示,同样可以建立一个javabean来存储这些数据来避免刷新数据的丢失的。

分享到:
评论

相关推荐

    行业文档-设计装置-压痕烫金机与续纸装置的联动机构.zip

    联动机构的设计目标是协调压痕烫金机和续纸装置的动作,以确保在纸张耗尽时能快速、无缝地更换新纸,同时保持生产的连续性和一致性。这通常涉及到以下几个关键组件和机制: 1. **传感器监测**:在生产线上安装...

    D-A-P联动智慧医疗平台的研究.pdf

    2. **诊疗特色服务**:如电子病历管理、线上续方、诊后跟踪关怀、疫苗服务等,提供个性化的医疗服务,加强医患互动。 3. **平台加盟服务**:与医院HIS系统、区域公共平台、社保平台等对接,引入银行、药房、保险等...

    火灾自动报警及联动控制系统检测报告.doc

    - **火灾报警信号**:检测信号接收、保持、首警显示、续报显示、火警优先级、报警音响、报警记忆、火警存储等功能是否正常。 - **故障报警**:检验短路、断路、主电故障、备电故障、充电故障等情况下系统的响应和...

    建筑工程常用表格2021(编号;A-16)续表2-火灾自动报警系统系统自检报告.doc

    A-16)续表2-火灾自动报警系统系统自检报告”,这显然与建筑行业的消防安全管理和工程实施相关。该表格是用于记录和检查火灾自动报警系统的自检过程,确保系统在建筑工程中的正常运行和合规性。 在建筑行业中,火灾...

    建筑工程常用表格2021(编号;A-16)续表1-火灾自动报警系统系统自检报告.doc

    控制器的各类功能,如报警、故障报警、自检、火警优先、电源转换、消音复位、记忆和联动响应等功能,都需通过功能试验来验证其性能。 5. **联动控制**: 火灾报警系统应具备联动控制功能,即在火警发生时自动触发...

    Laravel开发-addressable-trait

    在实际应用中,`addressable-trait`可能还会涉及到Eloquent ORM的联动,比如定义一对多或多对多的关系来关联模型与地址表。例如,它可能会创建一个`addresses`关系,这样你就可以通过`$user-&gt;addresses`来获取或操作...

    对网友求助问题的几个回帖展示之三十三

    - 电容器在电路中起到储能和平滑电压的作用,如续流回路中的电容器可以稳定负载两端的电压,防止电流断开时产生过大的电压尖峰。 5. PLC程序逻辑控制 - PLC程序逻辑控制是一个将输入信号转换为输出信号的过程,这...

    SecureCRT-and-Fx-6.6.1-x86

    3. **批量传输**:支持文件和目录的批量传输,以及断点续传,提高工作效率。 4. **拖放操作**:直观的拖放功能,使得文件传输更加便捷。 5. **书签功能**:保存常用的服务器连接信息,快速访问常用站点。 6. **与...

    管房管理系统操作手册范本.doc

    - 宾客续住:客人延长住宿时间或补缴押金的操作。 - 冲账:修正错误账目记录,用红字冲销原有记录,然后重新正确处理。 2. 基本操作: - 进入系统:双击图标,输入用户名(默认admin)和密码(默认8888),确保...

    主机域名Sofee米表程序-sofeedomainnameportfolio-v101

    2. 提醒服务:该程序具备智能提醒功能,当域名即将到期或需要续费时,系统会自动发出通知,避免因疏忽而导致域名过期失效。 3. 分类管理:用户可以按照不同的标准(如用途、价值、潜在买家等)对域名进行分类,便于...

    星光级红外网络高清高速智能球机

    - **报警联动**:内置7路报警输入和2路报警输出,支持报警联动功能,增强应急响应能力。 综上所述,DS-2DF8223IW系列200万像素星光级红外网络高清高速智能球机以其卓越的智能功能、强大的红外性能、稳定的系统功能...

    面经-百度-AI 小组课教学班级对战

    ● 产品设计:基于百度AI产品解决方案,...● 试点成果:通过打造小范围直播标杆课堂,打造“1+N+1”回合制能量配置,为产品设计提供输入,以小学组特定二年级语文学科展开试点,综合出勤率提升20%,续报率提升15%。

    技能鉴定变电一次安装高级技师复习题及答案.docx

    - 在带电感性负载的半控桥电路中,通常需要接入续流二极管,以防止当可控硅导通角较小时,电感性负载产生的反向电动势损坏可控硅。 24. **麻花钻的结构特点** - 正确 - 后角的设计可以减少钻头与加工表面之间...

    互联网医院运营.pptx

    - **需求驱动**:根据患者需求,逐步开放网络门诊、复诊续方、电子处方、药品配送等服务。 - **无接触服务**:特别是在疫情期间,推出线上无接触门诊服务,保障患者安全。 - **保险拓展**:积极对接医保和商业保险...

    基于C#的酒店管理系统文档.doc

    - 随着技术发展,未来的酒店客房管理系统可能会集成更多智能化元素,如物联网设备的联动、AI客服等。 - 移动化趋势,支持移动端应用,方便客人自助服务和远程操作。 酒店客房管理系统是现代酒店信息化的重要组成...

    大华-建筑工地智能监控解决方案.pptx

    系统具备声光警戒功能,能够在可疑行为发生时触发警报,并联动客户端进行处理。 **方案亮点** 1. **7×24小时全彩守护**:通过全彩摄像机,确保日夜全天候的清晰监控。 2. **声光警戒**:精准识别非法入侵,减少误...

    20210321-华西证券-教育行业周报:北京市教委已启动校外培训机构线下教学工作,思考乐、华夏视听教育获准纳入港股通.pdf

    例如,豆神教育预期改善,从其2020年第四季度的数据来看,公司语文业务取得了显著的成绩,比如寒假班续报率达到了84%的历史新高,收款金额和收入金额都有显著增长。这些积极的信号预示着公司业务可能会持续改善,...

    续工程定额学习教案.pptx

    这份"续工程定额学习教案"主要讲解了工程定额的计算方法、企业定额的特点及其作用,以及工期定额的相关内容。 首先,工程定额在实际应用中涉及到材料消耗的计算。例如,计算墙体的砌砖量时,需要用到公式A = 墙厚的...

Global site tag (gtag.js) - Google Analytics