`
sarin
  • 浏览: 1757024 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
E3b14d1f-4cc5-37dd-b820-b6af951740bc
Spring数据库访问系列...
浏览量:173670
C2083dc5-6474-39e2-993e-263652d27795
Android学习笔记
浏览量:368147
5f40a095-b33c-3e8e-8891-606fcf3b8d27
iBatis开发详解
浏览量:189272
B272a31d-e7bd-3eff-8cc4-c0624ee75fee
Objective-C学习...
浏览量:99848
社区版块
存档分类
最新评论

基于Struts2的SingleEdit插件的使用。

阅读更多
   前些日子看到网友wbfsa发布了SingleEdit插件,基于JQuery的表单信息修改工具。颇具特色。项目中我使用Struts2,已经整合了Uploadify和JqGrid两个组件,基本可实现操作的异步处理,效果更佳绚丽。
    这次使用SingleEdit,在页面中也就实现了最原始的数据修改效果,因为在使用JqGrid时,是基于一条记录进行的。而SingleEdit可以针对一个字段修改,非常实用。在看过wbfsa提供的帮助文档后,我把它集成到Struts2中。代码如下:
    页面:想了解更多可以参考wbfsa的博客。
<table class="default" width="100%">
		<col width="20%" align="center">
		<col width="30%" align="center">
		<col width="20%" align="center">
		<col width="30%" align="center">
		<tr class="title">
			<td align="center" colspan="4">个人信息</td>
		</tr>
		<tr class="strong">
			<td colspan="4">您可以修改除用户名以外的信息</td>
		</tr>
		<tr>
			<td>用户名</td><td>${loginUser.USERNAME}</td>
			<td>真实名</td><td><div class="edit" id="realname"></div></td>
		</tr>
		<tr>
			<td>性别</td><td><div class="edit" id="sex">${pInfo.SEX}</div></td>
			<td>身份证号</td><td><div class="edit" id="idcard">${pInfo.IDCARD?default("(点击填写)")}</div></td>
		</tr>
		<tr>
			<td>生日</td><td><div class="edit" id="birthday">${pInfo.BIRTHDAY?default("(点击填写)")}</div></td>
			<td>E-mail</td><td><div class="edit" id="email">${pInfo.EMAIL?default("(点击填写)")}</div></td>
		</tr>
	</table>	

这里应用了一些自定义的CSS样式,您可以对应修改
页面都很简单,不做介绍了
SingleEdit的Js和css可以参照wbfsa的文章
<script type="text/javascript">
        $(function() {
            $(".edit").singleEdit({
            	zID: "${loginUser.USERID}",
                url:"user!editInfo.action?time="+new Date().getTime(),
                ajaxenable: true,
                ajaxType: "GET",
                acceptID: "1",
                refreshID: "2",
                selection:[
                	 { id: "usex", item: [{ zID: "男", zname: "男" }, { zID: "女", zname: "女" }]}
                ],
                data: { 
                	realname: "${loginUser.REALNAME}"
                },
                main: [
                 { id: "realname", field:"realname", type: "textbox" },
                 { id: "sex", itemid:"usex", field:"sex", type: "radio", radiosettings:2 },
                 { id: "idcard", field:"idcard", type: "textbox" },
                 { id: "birthday", field:"birthday", type: "date" },
                 { id: "email", field:"email", type: "textbox"}
                ]
            });     
         });   
    </script>

重点解释Ajax段JS代码,其他的参考wbfsa的帮助文档,那更详细。
zID是更新的依据,就是该记录的主键,注意大小写
url是请求处理的地址,这里是Struts2的,就不多说了
ajaxType当前还只能是GET,可能是源文件这里有BUG,我这POST不好用,获取不到参数
后面的代码就是数据处理了。只要这段代码写在ftl文件里面,那么freemarker就可以直接填充数据,在js段也可以使用${}获取值。很方便。

后台处理代码如下:
/**
	 * SingleEdit插件更新数据的方法
	 */
	public String editInfo() {
		getServMgr().getUserService().editUserInfo(field, value, zID);
		Map dbUser = getServMgr().getUserService().getUserByUserName(getLoginUserName());
		getSession().put(Constants.LOGIN_USER, dbUser);
		return null;
	}

该方法不需要返回值,异步更新只是执行以下方法。这里的参数field,value和zID就是页面传入的参数了。在该java文件里面需要有相应的set方法。
getLoginUserName()是写在自定义基类的一个方法,就是获取当前登录用户的用户名,不要页面传入这个参数,从session中拿,安全性很高。
后面就是把更新好的数据再次放入session,时时更新。
Service中的方法:
public void editUserInfo(String field, String value, String userId) {
		StringBuffer editSQL = new StringBuffer("update users set ");
		editSQL.append(field + "=? ").append("where userId=" + userId);
		jt.update(editSQL.toString(), new Object[] { value });
	}

我是通过StringBuffer拼接SQL语句的,当然也可以直接拼接,这样就可以达到SQL语句的动态化,字段和值都是自适应的。数据持久层使用Spring JdbcTemplate。
    本人才疏学浅,还望各位高手指教。
效果可以参考原作者的演示,很详细。
分享到:
评论

相关推荐

    struts2的插件使用

    Struts2的核心功能包括动作调度、结果映射、拦截器等,而其强大的扩展性则体现在众多插件的使用上。这篇博文主要探讨的是Struts2中的"convention-plugin",这是一个自动配置插件,极大地简化了开发过程。 在传统的...

    NetBeans 下struts2 的插件

    在NetBeans IDE中,使用Struts2插件可以极大地提高开发效率,使得开发者能够更加便捷地进行基于Struts2的应用程序构建。 NetBeans 7.0 和 7.01 是两个版本的IDE,它们都支持Struts2插件。这个插件的引入使得开发者...

    Struts2 Netbeans插件

    Struts2 Netbeans插件是专门为开发者在NetBeans集成开发环境中使用Struts2框架提供的一款高效工具。这款插件极大地简化了Struts2框架在项目中的集成和开发过程,为Java Web开发带来了便利。 首先,Struts2是一个...

    基于Struts2的个人信息管理系统

    基于Struts2的个人信息管理系统是使用这一框架来设计和实现的一个典型示例,它涵盖了用户管理、行程管理和文件操作等多个核心功能。 在用户管理模块中,Struts2提供了丰富的动作类(Action)和结果(Result)配置,...

    netbean struts2 插件

    标题“netbean struts2 插件”指的是在NetBeans IDE中使用的Struts2插件,这个插件为开发者提供了一整套的工具和服务,以便更好地在NetBeans中开发基于Struts2的应用程序。这个插件通常包含了代码自动生成、模板创建...

    基于Struts2+Hibernate5的教务管理系统项目实训

    struts2+hibernate5+MySQL 本项目只是简单模拟教务管理系统的基本功能,通过熟悉的教务管理系统开发来综合训练Struts2和 Hibernate5框架技术的整合应用,并进一步提高项目实践能力。 项目实现的功能包括学生管理部分,...

    基于java的开发源码-Struts验证码插件 JCaptcha4Struts2.zip

    基于java的开发源码-Struts验证码插件 JCaptcha4Struts2.zip 基于java的开发源码-Struts验证码插件 JCaptcha4Struts2.zip 基于java的开发源码-Struts验证码插件 JCaptcha4Struts2.zip 基于java的开发源码-Struts...

    Java Web整合开发实战:基于Struts 2+Hibernate+Spring(PDF)

    Java Web整合开发实战--基于Struts 2+Hibernate+Spring.pdf 1章 Web的工作机制 2章 搭建Java Web开发环境 3章 JSP及其相关技术 2篇 表现层框架Struts技术 4章 Struts快速上手 5章 解密Struts之核心文件 6章 ...

    基于Struts2的留言板系统.zip

    在基于Struts2的留言板系统中,我们主要会涉及到以下几个关键知识点: 1. **Struts2框架**: Struts2是Apache软件基金会的一个开源项目,它是Struts1的后续版本,提供了更丰富的功能和更好的性能。它通过拦截器实现...

    基于Struts2的学生选课管理系统

    Struts2的核心优势包括灵活的拦截器机制、丰富的插件库以及对Ajax的支持,这些特性使得开发人员能够更便捷地处理请求、响应和视图的映射,同时实现动态和交互式的用户界面。 其次,MySQL作为开源免费的关系型数据库...

    基于struts2的项目

    在"基于Struts2的项目"中,我们通常会看到以下核心概念和组件: 1. **Action类**:这是业务逻辑的入口点,负责处理来自客户端的请求。Action类通常实现了`com.opensymphony.xwork2.Action`接口或其子接口,如`...

    基于struts2的个人信息管理系统

    基于struts2的个人信息信息管理系统,功能包括,登录、注册,个人基本信息的增删查改,联系人信息的增删查改,以及日程功能,文件上传与下载。数据库为sql server2012,ide是NetBeans8.2

    基于Struts2+JDBC的网上购物

    例如,使用Struts2的全局异常处理来捕获并处理可能出现的错误,或者利用Struts2的插件如Tiles来组织复杂的视图结构。 总的来说,这个“基于Struts2+JDBC的网上购物”项目提供了丰富的实践机会,涵盖了Web开发中的...

    Netbeans Struts2插件

    nbstruts2support,当前的netbeans即使是6.5版本也只是支持struts1,该插件可以使其支持struts2,下载该两个插件,打开“工具”--&gt;“插件”选择已下载,将插件导入,打上勾,安装即可

    基于Java的Struts2 XStream插件设计源码

    Struts2 XStream插件:基于Java开发,包含20个文件,包括12个Java类文件、2个XML配置文件、1个.gitignore文件、1个Properties配置文件、1个LICENSE文件、1个Markdown文档、1个Maven命令文件(mvnw)和1个命令文件...

    struts2插件

    Struts2插件则是为了提升开发者在使用Eclipse集成开发环境时的工作效率而设计的工具。通过集成这个插件,开发者可以快速地生成Struts2相关的代码,包括Action类、配置文件、JSP页面等,从而减少手动编写这些重复性...

    netbean的struts2插件

    netbean7.2的struts2插件

    struts2 jquery 插件

    struts2的jquery插件, 可使用jquery标签库快速进行前端开发。

    基于struts2的高校信息管理系统

    【基于Struts2的高校信息管理系统】是一种采用Java Web技术构建的应用系统,它主要用于高校内部的行政管理和教学管理工作。Struts2是Action Servlet框架的升级版,提供了更加强大、灵活的MVC(模型-视图-控制器)...

Global site tag (gtag.js) - Google Analytics