对最近项目问题的一个思考。(CMS系统和AJAX) CMSAjaxJavaScriptWebHTML
对最近项目问题的一个思考。
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>