欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

对最近项目问题的一个思考。(CMS系统和AJAX) CMSAjaxJavaScriptWebHTML

程序员文章站 2024-03-07 09:58:14
...

对最近项目问题的一个思考。

1个重要的js文件:tools.js,对几乎用到的最基本的js进行了封装

项目用到了cms。
在cms里用ajax有2种方式。

第一:(class=on的先是默认的打开)
导入js文件,必须有先后顺序
<script src="http://static.duniu.com/www/web/js/tools.js" type="text/javascript"></script>
<script src="http://static.duniu.com/www/web/js/TabContentAjax.js" type="text/javascript"></script>

<ul id="billboardTab">
 <li class="on">1。<a href="http://www.duniu.com/cmsGuildOrder?type=1">积分榜</a></li>
 <li>2。<a href="http://www.duniu.com/cmsGuildOrder?type=2">人数榜</a></li>
 <li><a href="http://www.duniu.com/cmsGuildOrder?type=3">人气榜</a></li>
</ul>
<div id="billboardCont">
</div>

注意:1.   2.    这些东西都不能要。 class="on" 是默认打开的

<script language="javascript">
 new TabContentAjax("billboardTab", "billboardCont");//必须放在后面
</script>

会把通过controller返回来的vm放到<div id="billboardCont"></div>这个<div>里。
Controller里map里放一个值:map.put("URL","digitalproduct?type="+type +"&pageId=");


返回的vm里页码为:
#foreach($item in $list)
    <div>
    <a href="newcp_more.html"><img src="imgs/cp/newcp01.gif"/></a><h1><a href="newcp_more.html">$!item.Title</a></h1><h2>$!item.Time</h2>
    <p>$!item.Content</p>
    </div>
#end
<div id="pageContent">
  #set($url=$!URL)
  #set($changepage="pageAjax('billboardCont',this.href);return false;")//有事件处理
  #parse("cms/page.vm")
</div>

 

 

第二:(通过资源类先生成一个)
导入js文件,必须有先后顺序
<script src="http://static.duniu.com/www/web/js/tools.js" type="text/javascript"></script>
<script src="http://static.duniu.com/www/web/js/ArticleContentAjax.js" type="text/javascript"></script>

<ul id="billboardTab">
 <li>1。<a href="http://www.duniu.com/cmsGuildOrder?type=1">积分榜</a></li>
 <li>2。<a href="http://www.duniu.com/cmsGuildOrder?type=2">人数榜</a></li>
 <li><a href="http://www.duniu.com/cmsGuildOrder?type=3">人气榜</a></li>
</ul>
<div id="billboardCont">
</div>

注意:1.   2.    这些东西都不能要。

<script language="javascript">
 
new ArticleContentAjax("billboardTab", "billboardCont");
new ArticleContentAjax("pageContent","billboardCont");  //分页的。
</script>

页码是通过资源类生成的。
//String URL="/c_"+ urlNum +"_p_";//c_191_p_5.htm ,点分页时会自动把页码加在后面,资源类里本来是通过这个URL来实现整个页面的刷新。
String URL = "/digitalproduct?pageId=";//现在通过这个来生成出页码,页码所在的<div >的class 为pageContent


点页码时转向Controller.但是因为后面有个.htm请求。所以要把.htm给解掉。
所以Controller里有个截取的方法
if(strPageId!=null && strPageId.trim().length() > 0){
int pos=strPageId.indexOf(".htm");
String idStr=null;
if(pos!=-1){
 idStr=strPageId.substring(0,pos);
 try{
  pageId=Integer.parseInt(idStr);
 }catch(Exception e){
  e.printStackTrace();
 }    
 
}else{
 try{
  pageId=Integer.parseInt(strPageId);
 }catch(Exception e){
  e.printStackTrace();
 }  
}


}

会把通过controller返回来的vm放到<div id="billboardCont"></div>这个<div>里。
Controller里map里放一个值:map.put("URL","digitalproduct?type="+type +"&pageId=");


返回的vm里页码为:
#foreach($item in $list)
    <div>
    <a href="newcp_more.html"><img src="imgs/cp/newcp01.gif"/></a><h1><a href="newcp_more.html">$!item.Title</a></h1><h2>$!item.Time</h2>
    <p>$!item.Content</p>
    </div>
#end
<div id="pageContent">
  #set($url=$!URL)
  #set($changepage="pageAjax('billboardCont',this.href);return false;")//有事件处理
  #parse("cms/page.vm")
</div>