全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

jsp、struts、spring、mybatis实现前端页面功能模块化拆分的方案

前端页面功能模块化拆分

当一个系统的功能很多时,不可能所有功能模块的页面都写在一个页面里面,这时就需要将不同功能模块的页面拆分出去,就像模板一样,需要哪块的功能就调用哪块的页面,然后加载相应数据并展示到相应的页面。

本应用的使用spring+struts+mybatis+jsp的方式,用两种方案来完成前端页面功能的拆分。

方案一:

在JSP页面中,利用EL表达式或者Java代码的方式,在后台完成页面数据的填充。然后在js中来完成页面的切换。

jsp代码:

业务详情模块页面:riskDetailItem.jsp页面代码使用EL表达式完成数据填充。

<div class="col-12 b-b"> 
  <table class="table table-form" style="font-size: 14px;"> 
    <tr> 
      <td class="m_c" width="180px">客户名称 </td><td width="200px">${loanRiskBean.cusName}</td> 
      <td class="m_l" width="180px">贷款金额 </td><td>${loanRiskBean.dueBillAmount} 元</td> 
    </tr> 
   </table> 
</div> 

 struts的xml文件代码:

 * http://www.dotdy.com/   

<action name="riskDetailItem" class="riskRecheckAction" method="detailItem">  
  <result name="success">/WEB-INF/jsp/riskrecheck/riskDetailItem.jsp</result> 
</action> 

 Action中的代码:

private LoanRiskBean loanRiskBean; 
public String detailItem(){ 
    try{ 
      loanRiskBean = riskRecheckServiceImpl.detailItem(riskId);--调用service中的方法查询数据 
    }catch(Exception e){ 
      e.printStackTrace(); 
      LoggerUtil.info("查看详情出现异常!------detailItem()"); 
      throw new RuntimeException("查看详情出现异常!"); 
    } 
    return SUCCESS; 
  } 
 
public void setLoanRiskBean(LoanRiskBean loanRiskBean) { 
    this.loanRiskBean = loanRiskBean; 
  } 

 js中的代码:

$(document).on('click','.related',function(){ 
      var loanid = $(this).attr("loanid"); 
      var urlSwitch = "/hbpost/riskRecheck/riskRelatedItemSwitch.action"; 
      var url = "/hbpost/riskRecheck/riskRelatedItem.action?time="+new Date()+"&loanid=" + loanid; 
      //声明详情查询方法 
      var relatedInfo = function(){ 
        $.ajax({ 
        url:url, 
        type:'get', 
        dataType:'json', 
        success:function(data){ 
        } 
      }) 
    } 
      //请求加载相关组成员信息页面,并展示在dialog中 
      $.ajax({ 
        url:urlSwitch,     
        type:"get", 
        success:function(data){ 
          relatedInfo();//调用详情查询方法 
          relatedDialog=$dialog({ 
            id:'relatedDialog', 
            width:1000, 
            title:"相关信息", 
            cancelValue:'关闭', 
            content:data, 
            onshow:function(){ 
              $(".artui-dialog").css("max-height","450px"); 
              $(".artui-dialog").css("min-height","300px"); 
              $(".artui-popup").css("left","330px"); 
              $(".artui-popup").css("top","130px"); 
            } 
          }).showModal(); 
        } 
      }) 
   }) 

 第二种方案: 

在相应功能模块的JSP页面中,只是静态代码,需要在js中进行数据的填充,但是因为相应的jsp功能模块页面还没有加载(尽管可以在功能模块jsp页面引入相应的js,或者利用sea.js来加载js文件,但是本质是html或者jsp页面加载时才会加载相应的js文件),所以不能在js中领用jQuery来获取页面的dom元素。这时,就需要先加载jsp页面,例如可以在struts处进行一个页面的跳转,而不需要向后台发起请求。也就是说需要向后台发起两次请求,第一次请求是加载相应的功能模块页面,第二次请求是向后台请求数据,然后填充到第一次请求的页面中,并展示出来。

jsp代码:都是静态代码

<div class="relatedInfo mainBusiness" style="overflow:auto;width:100%;*+width:1000px;"> 
  <div style="width:1300px;padding-left:20px;padding-right:20px;"> 
    <h5>经营名称不一致</h5> 
        <table class="grid table table-striped addtable"> 
          <thead> 
            <tr> 
              <th style="width:35px;">客户名称</th>               
                  <th style="width:40px;">借据金额</th>              
            </tr> 
          </thead> 
          <tbody> 
      </tbody> 
       </table> 
   </div> 
</div> 

struts中的xml文件:

<action name="riskRelatedItem" class="riskRecheckAction" method="relatedItem"> 
  </action> 
<!-- 跳转到相关组页面 --> 
<action name="riskRelatedItemSwitch" class="riskRecheckAction" method="relatedItemSwitch"> 
   <result name="success">/WEB-INF/jsp/riskrecheck/riskRelatedItem.jsp</result> 
</action> 

或者是: 

<!-- 跳转到相关组页面 -->不用再Action处写相应的方法,struts就负责了跳转。 
<action name="riskRelatedItemSwitch" class="riskRecheckAction"> 
   <result>/WEB-INF/jsp/riskrecheck/riskRelatedItem.jsp</result> 
</action> 

  Action中的代码:

/** 
 * 根据loanid查询相关组成员信息 
 */ 
public void relatedItem(){ 
  List<LoanRiskBean> tmpRelatedList = null; 
  try { 
    tmpRelatedList = riskRecheckServiceImpl.relatedItem(loanid); 
    this.outputStreamModelAndView(tmpRelatedList); 
  } catch (Exception e) { 
    e.printStackTrace(); 
    LoggerUtil.info("查看相关组成员信息出现异常!-----relatedItem()"); 
    throw new RuntimeException("查看相关组成员信息出现异常!"); 
  } 
} 
/** 
 * 跳转到相关成员组页面 
 * @return 
 */ 
public String relatedItemSwitch(){ 
  return SUCCESS; 
}

 js中的代码:

/** 
   * 贷后专项检查录入信息展示--客户信息【相关】组展示 
   */ 
    $(document).on('click','.related',function(){ 
      var loanid = $(this).attr("loanid"); 
      var urlSwitch = "/hbpost/riskRecheck/riskRelatedItemSwitch.action"; 
      var url = "/hbpost/riskRecheck/riskRelatedItem.action?time="+new Date()+"&loanid=" + loanid; 
      //查询相关成员组信息,并循环判断append到页面 
      var relatedInfo = function(){ 
        $.ajax({ 
        url:url, 
        type:'get', 
        dataType:'json', 
        success:function(data){ 
          var tmpArray = data.object,,tipStr; 
          for(var i = tmpArray.length-1; i >= 0; i--){ 
            tipStr = tmpArray[i].tipstr;                     
            if(tipStr == "住址相同"){ 
              $(".sameAddress tbody").append("<tr><td>"+tmpArray[i].cusName+"</td><td>" 
                  +tmpArray[i].duebillNo+"</td></tr>"); 
              $(".sameAddress").css("display","block"); 
              continue; 
            } 
          } 
        } 
      }) 
    } 
      //请求加载相关组成员信息页面,并展示在dialog中 
      $.ajax({ 
        url:urlSwitch,     
        type:"get", 
        success:function(data){ 
          relatedInfo(); 
          relatedDialog=$dialog({ 
            id:'relatedDialog', 
            width:1000, 
            title:"相关信息", 
            cancelValue:'关闭', 
            content:data, 
            onshow:function(){ 
              $(".artui-dialog").css("max-height","450px"); 
              $(".artui-dialog").css("min-height","300px"); 
              $(".artui-popup").css("left","330px"); 
              $(".artui-popup").css("top","130px"); 
            } 
          }).showModal(); 
        } 
      }) 
   }) 

以上所述是小编给大家介绍的jsp、struts、spring、mybatis实现前端页面功能模块化拆分的方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# 前端页面功能模块化拆分  # javascript模块化是什么及其优缺点介绍  # 详解Js中的模块化是如何实现的  # Javascript模块化编程详解  # Javascript模块化编程(三)require.js的用法及功能介绍  # JavaScript的模块化:封装(闭包)  # 继承(原型) 介绍  # Javascript模块化编程(一)模块的写法最佳实践  # 详解JavaScript模块化开发  # Javascript模块化编程(一)AMD规范(规范使用模块)  # JavaScript模块化之使用requireJS按需加载  # 关于Javascript模块化和命名空间管理的问题说明  # JS前端模块化原理与实现方法详解  # 加载  # 组成员  # 跳转到  # 相关信息  # 跳转  # 小编  # 查看详情  # 都是  # 不可能  # 就像  # 在此  # 两种  # 两次  # 能在  # 给大家  # 或者是  # 在一  # 要向  # 中来  # 时才 


相关文章: 香港服务器选型指南:免备案配置与高效建站方案解析  ,sp开头的版面叫什么?  深圳网站制作培训,深圳哪些招聘网站比较好?  PHP正则匹配日期和时间(时间戳转换)的实例代码  如何基于PHP生成高效IDC网络公司建站源码?  如何做静态网页,sublimetext3.0制作静态网页?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  如何在万网自助建站中设置域名及备案?  如何生成腾讯云建站专用兑换码?  高防服务器租用指南:配置选择与快速部署攻略  无锡营销型网站制作公司,无锡网选车牌流程?  建站之星展会模板:智能建站与自助搭建高效解决方案  大同网页,大同瑞慈医院官网?  如何获取上海专业网站定制建站电话?  如何在IIS7上新建站点并设置安全权限?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  高端建站三要素:定制模板、企业官网与响应式设计优化  香港服务器部署网站为何提示未备案?  Bpmn 2.0的XML文件怎么画流程图  建站org新手必看:2024最新搭建流程与模板选择技巧  网站按钮制作软件,如何实现网页中按钮的自动点击?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  宝塔Windows建站如何避免显示默认IIS页面?  建站之星如何快速解决建站难题?  如何在IIS中新建站点并配置端口与IP地址?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  如何在橙子建站中快速调整背景颜色?  如何在橙子建站上传落地页?操作指南详解  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  建站之星北京办公室:智能建站系统与小程序生成方案解析  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  宝塔建站助手安装配置与建站模板使用全流程解析  宝塔建站无法访问?如何排查配置与端口问题?  建站主机服务器选购指南:轻量应用与VPS配置解析  昆明网站制作哪家好,昆明公租房申请网上登录入口?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  制作网站的基本流程,设计网站的软件是什么?  网站制作报价单模板图片,小松挖机官方网站报价?  如何快速使用云服务器搭建个人网站?  *服务器网站为何频现安全漏洞?  建站VPS配置与SEO优化指南:关键词排名提升策略  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  如何设计高效校园网站?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  建站主机CVM配置优化、SEO策略与性能提升指南  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  如何在阿里云购买域名并搭建网站?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  北京建设网站制作公司,北京古代建筑博物馆预约官网? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。