`
小嘴看世界
  • 浏览: 131483 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

项目中的一个展开隐藏回复的功能

    博客分类:
  • Web
阅读更多
客户的不断变更是我提高技术的动力!
实现了一个浏览回复帖的功能,回复的信息也可以回复,只要在servlet给他返回html代码了,幸好不是太麻烦。
首先是页面部分,包括了很多struts标签
<div class="left_box">
	<logic:empty name="infoBean" property="infoList">
		对不起,没有您想要的记录!
	</logic:empty>
	<logic:iterate id="info" name="infoBean" property="infoList">
		<fieldset>
			<table cellspacing="1" width="100%" border="1">
				<tr>
					<td rowspan="4" width="70">
						<logic:match name="info" property="tpye" value="A">
							货源信息
						</logic:match>
						<logic:match name="info" property="tpye" value="B">
							车源信息
						</logic:match>
						<logic:match name="info" property="tpye" value="C">
							其它信息
						</logic:match>
						<br/>
						<img id="<bean:write name='info' property='lnid'/>" src="images/plus.gif" onClick="openList(this.id);"/>信息号<bean:write name="info" property="lnid"/><br/>
						<a href="../front/infoReplayForm.shtml?pnid=<bean:write name='info' property='lnid'/>">留言</a>
					</td>
					<td rowspan="2" width="500" valign="top">
						<bean:write name="info" property="sdty"/> 
						<bean:write name="info" property="nmbr"/><bean:write name="info" property="uom"/> 
						有效天数:<bean:write name="info" property="dkco"/>  
						<bean:write name="info" property="dsc"/>
					</td>
					<td width="80">发布公司:</td>
					<td><bean:write name="info" property="dkco"/> </td>
				</tr>
				<tr>
					<td>发布人:</td>
					<td><bean:write name="info" property="bcusr"/> </td>
				</tr>
				<tr>
					<td>起始地:<bean:write name="info" property="adss"/>  <bean:write name="info" property="adssn"/></td>
					<td>联系方式:</td>
					<td><bean:write name="info" property="rltv"/> </td>
				</tr>
				<tr>
					<td>终止地:<bean:write name="info" property="adse"/>  <bean:write name="info" property="adsen"/></td>
					<td>发布时间:</td>
					<td><bean:write name="info" property="bcdat" format="yyyy-MM-dd"/> </td>
				</tr>
				<tbody id="s<bean:write name='info' property='lnid'/>"></tbody>
			</table>
		</fieldset>
	</logic:iterate>
	<logic:notEmpty name="infoBean" property="infoList">
	<fieldset>
		<table cellspacing="1" width="100%">
			<tr><td><cochang:paginate name="infoBean" list="infoList"/></td></tr>
		</table>
	</fieldset>
	</logic:notEmpty>
</div>


然后是javascript部分,比较简单,一是需要把加号替换一下,再就是请求servlet返回html代码填充到tbody中

function openList(id) {    
    var image = document.getElementById(id);    
    var imagesrc = image.src;    
    if(imagesrc.indexOf("plus")>0){    
        image.src="images/nofollow.gif";    
        var params = "id=" + id;    
        var url = '../fore/infoServlet';    
        var myAjax = new Ajax.Updater('s'+id, url, {method: 'get', parameters: params});    
    }else if(imagesrc.indexOf("nofollow")>0){    
        image.src="images/plus.gif";    
        $('s'+id).innerText="";    
    }    
}

下面是servlet部分,一口气代码全部贴上。
public class InfoServlet extends BaseAjaxServlet {    
   
    InfoService infoService;    
        
    public void init() throws ServletException {    
        super.init();    
        this.infoService = (InfoService)CustomBeanFactory.getBean("infoService");    
    }    
        
    public String performTask(HttpServletRequest request, HttpServletResponse response) {    
        String id = request.getParameter("id");    
        String result = " 可能发生错误,请与管理员联系!";    
        if(!id.equalsIgnoreCase("")){    
            result = searchInfo(id);    
        }    
            
        return result;    
    }    
        
    public String searchInfo(String id) {    
        List infos = infoService.searchByPnid(id);    
        Info info = new Info();    
        StringBuffer string = new StringBuffer(200);    
        if(infos.size() == 0) {    
            return " 没有任何留言!";    
        }    
        string.append(" ");    
        for(int i=0;i<infos.size();i++) {
            info = (Info)infos.get(i);    
            string.append("<tr><td><img id='"+info.getLnid()+"' src='images/plus.gif' onClick='openList(this.id);'/><a href='../front/infoReplayForm.shtml?pnid="+info.getLnid()+"'>留言</a></td><td>");    
            string.append(info.getLnid());    
            string.append("</td><td>");    
            string.append(info.getDsc());    
            string.append("</td></tr><tbody id='s"+info.getLnid()+"'></tbody></td></tr>");    
        }    
        string.append("</table></td></tr>");    
        return string.toString();    
    }    
}

最后还是一个效果图,视觉才是最直观的。
  • 描述: 展开前效果
  • 大小: 25.7 KB
  • 描述: 展开后效果
  • 大小: 24.3 KB
分享到:
评论

相关推荐

    Android-基于ExpandableListView实现评论和回复的功能

    在这个项目中,“Android-基于ExpandableListView实现评论和回复的功能”旨在教你如何利用`ExpandableListView`来创建一个可展开和折叠的评论与回复界面。 首先,你需要理解`ExpandableListView`的基本概念。`...

    ExpandableListview评论回复

    在“ExpandableListview评论回复”的项目中,开发者创建了一个模仿QQ空间评论回复的示例,这通常涉及到以下关键技术点: 1. **ExpandableListAdapter**: 这是`ExpandableListView`的数据适配器,负责填充和管理各个...

    Android中实现网易评论盖楼效果

    对于回复,可以设置一个Reply对象,包含在Comment类内部,用于表示一条评论的回复。 2. JSON解析: - 通常,评论数据是从服务器获取的JSON格式数据。需要编写一个JSON解析器,如使用Gson库,将JSON字符串转化为...

    Android如何实现社交应用中的评论与回复功能详解

    通过以上步骤,我们可以创建一个基本的评论与回复功能。当然,实际项目中可能还需要处理更多细节,比如加载更多、异步数据获取、用户身份验证、表情解析等。总之,理解并熟练运用ExpandableListView,能帮助开发者...

    jQuery实现导航栏上下滑动效果,鼠标离开菜单后,导航自动回复原状,兼容主流浏览器

    本项目是关于使用jQuery实现一个交互式的导航栏,具有上下滑动的效果,并在鼠标离开菜单后能自动回复到原始状态。这个功能不仅提高了用户体验,也使网站界面更加动态和吸引人。以下是对这一技术实现的详细解析: ...

    bootstrap评论列表静态模板.zip

    Bootstrap是一款广泛应用于网页开发的前端框架,由Twitter的开发者们...在实际应用中,还可以结合后端技术,如PHP、Node.js或Python,将模板与数据库连接,实现动态加载和提交评论的功能,从而打造一个完整的评论系统。

    Android-NeteaseNewsComments仿网易新闻评论列表

    这样可以展示评论的回复功能,使得子评论以折叠或展开的形式呈现。同时,`CoordinatorLayout`也可能被用来实现与顶部栏的互动效果,如滚动时隐藏/显示标题。 此外,项目还涉及到网络数据的获取和解析。通常,开发者...

    jQuery实现的页面悬浮在线客服效果源码.zip

    在这个项目中,jQuery被用来创建一个浮动的客服图标或按钮,当用户在页面上滚动时,该图标始终保持在屏幕的一侧可见,点击后会展开客服对话窗口。 首先,我们需要理解jQuery的核心概念。jQuery通过选择器来选取HTML...

    bootstrap评论列表模板

    6. **折叠/展开功能**:为了节省空间,评论列表可能会有折叠/展开功能,允许用户点击以查看或隐藏评论详情。这通常通过Bootstrap的折叠组件(Collapse)实现,通过`.collapse`和`data-toggle="collapse"`属性来控制...

    js Treeview

    Treeview是一个可视化表示层次数据的控件,它以节点的形式呈现数据,每个节点可以有子节点,形成一个树形结构。在JavaScript中,我们可以通过DOM操作和事件监听来构建和管理这种结构。 1. **基本结构与HTML** 在...

    jquery右侧可折叠的在线客服代码

    可以将jQuery代码封装为一个独立的模块或插件,使用函数封装各个功能,比如`init()`用于初始化,`toggleChat()`用于折叠/展开,`sendMessage()`用于发送消息等。 总结,实现一个"jQuery右侧可折叠的在线客服代码...

    为你的reactnative应用程序实现一个气泡菜单效果

    在React Native应用中,气泡菜单是一种非常独特的交互设计,它可以提供一种轻量级的、非侵入式的操作选择方式,常用于空间有限或者需要强调某一功能时。本教程将指导你如何为你的React Native应用添加一个气泡菜单...

    抽屉式风格菜单源码 快捷启动淡菜

    在桌面应用中,这种菜单通常隐藏在屏幕边缘,用户可以通过滑动或点击特定图标将其展开,显示一系列可快速启动的程序或功能。这种设计旨在提供一种简洁、高效的用户交互方式,使得用户可以快速访问常用的应用或设置,...

    jQuery仿抖音视频功能

    "回复"功能则可能涉及一个弹出评论框,当用户点击“回复”按钮时,使用`.fadeIn()`或`.slideToggle()`展示评论输入框。用户提交评论后,同样通过Ajax将评论内容发送到服务器,并更新页面上的评论列表。 在CSS方面,...

    使用bootstrap框架结合JavaScript进行网页设计-评论页资源

    本资源包“使用bootstrap框架结合JavaScript进行网页设计-评论页资源”聚焦于如何运用这两种技术来创建一个功能完善的评论页面。 Bootstrap是由Twitter开发的一款开源的前端框架,它提供了一套完整的CSS样式和...

    jQuery网页右下角悬浮的美女在线客服代码

    jQuery作为一个轻量级、功能强大的JavaScript库,常常被用来实现这种交互效果。本示例中,“jQuery网页右下角悬浮的美女在线客服代码”就是一种典型的实现方式,它将客服图标或窗口置于网页右下角,始终可见,方便...

    毕业设计开题报告

    - **项目背景**:本开题报告围绕一个具体的企业网站建设展开,即为新乡市邦为电气有限公司创建一个官方网站。该项目旨在利用现代网络技术,如JSP、Servlet、AJAX、MySQL等,构建一个高效、易于维护的企业宣传平台。 ...

    左侧浮动可折叠的QQ在线客服代码

    为了部署这个代码,你需要将提供的文件导入到你的网站项目中,调整CSS样式以适应你的网站设计,并根据需要修改JavaScript代码中的客服ID和设置。对于不熟悉前端开发的用户,可能需要寻求开发者协助进行集成和定制。 ...

    下拉在线客服代码

    "下拉在线客服代码"是一个专门用于网页交互的...通过以上介绍,我们可以看出"下拉在线客服代码"是一个涉及前端开发、后端接口设计、用户体验优化等多个方面的综合项目,对于提升网站的互动性和服务质量具有重要作用。

Global site tag (gtag.js) - Google Analytics