通过url发送的json内容,转换为新闻图片切换控件

最近需要做一个通过第三方系统url返回的json内容,展示位门户首页新闻图片轮播的控件,整理代码如下,备查



import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.JSONTokener;

//省略

@ResponseBody
@RequestMapping(params = "method=initpic")
public String initpic(HttpServletRequest request, HttpServletResponse response) {
final String NULL_IMAGE_PATH = "http://www.baidu.com/img/bd_logo1.png";
String result="";
StringBuffer html = new StringBuffer();
BufferedReader reader = null;
try{
String orgurl = request.getParameter("url");
URL connect = new URL(orgurl.toString());
URLConnection connection = connect.openConnection();
connection.connect();
reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));
String line;//循环读取
while ((line = reader.readLine()) != null) {
result += line;
}
if(!result.equals("")){
JsonConfig jsonConfig = new JsonConfig();
Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("result", String.class);
classMap.put("Page", Integer.class);
classMap.put("Pages", Integer.class);
classMap.put("Total", Integer.class);
classMap.put("Pagesize", Integer.class);
classMap.put("Items", HashMap.class);
jsonConfig.setClassMap(classMap);
jsonConfig.setRootClass(HashMap.class);
JSONTokener jt = new JSONTokener(result);
Object obj = jt.nextValue(jsonConfig);
JSONObject ja = JSONObject.fromObject(obj);
Map<String, List<Map>> map = (Map<String, List<Map>>) JSONObject.toBean(ja, jsonConfig);
List itemlist = map.get("Items");
html.append("<div style=\"width:500px;margin:0px auto;\">")
.append("<div class=\"roll-news-keleyi-com\">").append("<div class=\"roll-news-image\">");
for (int i = 0; i < itemlist.size(); i++) {
Map<String,Object> imgmap = (Map<String, Object>) itemlist.get(i);
html.append("<img src=\"");
if(imgmap.get("thumb")!=null && !"".equals(imgmap.get("thumb").toString())){
html.append(imgmap.get("thumb"));
}else{
html.append(NULL_IMAGE_PATH);
}
if(i!=0){
html.append("\" style=\"display:none\" >");
}else{
html.append("\">");
}
}
html.append("</div>");
html.append("<div class=\"roll-news-index\">");
html.append("<ul>");
for (int i = 0; i < itemlist.size(); i++) {
html.append("<li");
if(i == 0){
html.append(" class=\"roll-news-index-hover\"");
}
html.append(">").append(i+1).append("</li>");
}
html.append("</ul>");
html.append("</div>");
html.append("<div class=\"roll-news-title\">");
for (int i = 0; i < itemlist.size(); i++) {
Map<String,Object> imgmap = (Map<String, Object>) itemlist.get(i);
html.append("<a href=\"").append(imgmap.get("thumb"));
html.append("\" ");
if(i!=0){
html.append("style=\"display:none\"");
}
html.append(" >");
html.append(imgmap.get("title"));
html.append("</a>");
}
html.append("</div></div></div>");
System.out.println(html.toString());
}

}catch(Exception e){
e.printStackTrace();
}finally{
if(reader!=null){//关闭流
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return html.toString();
}


页面

<%@page import="java.util.ListResourceBundle"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<HEAD>
<TITLE> </TITLE>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="res/js/json2.js" type="text/javascript" charset="UTF-8"></script>
<script src="res/js/jquery-1.8.0.min.js" type="text/javascript" charset="UTF-8"></script>
<style type="text/css">
* {
padding:0px;
margin:0px;
}
.roll-news-keleyi-com {
width:480px;
height:300px;
border:solid 1px #c1c1c1;
}
.roll-news-index-hover {
background-color:white;
}
.roll-news-image img {
width:480px;
height:300px;
}
.roll-news-index {
position:relative;
top:-50px;
margin-right:5px;
float:right;
}
.roll-news-index {
}
.roll-news-index li {
list-style:none;
float:left;
font-size:12px;
font-weight:600;
width:18px;
height:16px;
line-height:16px;
cursor:pointer;
margin:0 3px;
background-image:url(opacity_50.png);
text-align:center;
}
.roll-news-title {
position:relative;
top:-25px;
padding-left:10px;
height:22px;
line-height:20px;
background:url(opacity_50.png);
}
.roll-news-title a {
font-size:12px;
text-decoration:none;
color:white;
background-color:gray
}
.roll-news-title a:hover {
color:red;
}
</style>
</HEAD>
<body>
<div id="imgdiv">
</div>
</body>


<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type : "post",
url : "login.go?method=initpic&url=http://www.xinhuamed.com.cn/getnews.aspx?action=list&page=1&pagesize=10",
contentType : "application/text; charset=utf-8",
success : function(data) {
document.getElementById("imgdiv").innerHTML=data;
},
error : function(msg) {

}
});

setTimeout(function(){
var index = 0;
var slideFlag = true;
var length = $(".roll-news-image img").length;

function showImg(i) {
$(".roll-news-image img")
.eq(i).stop(true, true).fadeIn(800)
.siblings("img").hide();

$(".roll-news-index li").removeClass("roll-news-index-hover");
$(".roll-news-index li").eq(i).addClass("roll-news-index-hover");

$(".roll-news-title a")
.eq(i).stop(true, true).fadeIn(800)
.siblings("a").hide();
}
showImg(index);

$(".roll-news-index li").click(function () {
index = $(".roll-news-index li").index(this);
showImg(index);
slideFlag = false;
});

function autoSlide() {
setInterval(function () {
if (slideFlag) {
showImg((index + 1) % length);
index = (index + 1) % length;
}
slideFlag = true;
}, 3000);
}

autoSlide();
},500);
});

</script>

</html>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值