求iteye账号注册,或者帮我下载需要的附件

Spring 发送普通邮件、夹带附件的邮件、嵌入网页或图片的邮件 使用方法 - java的艺术 - ITeye博客
博客分类:
在项目应用中,时常存在发送邮件的业务需求。比如:用户注册时的邮件确认;系统出错时的邮件提醒;用户系统邮件订阅;系统的广告邮件定时推广等等。本文根据spring开发文档,列举普通文件邮件,夹带附件的邮件、嵌入图片的邮件三种形式的邮件的使用方式。
实现过程中定义BaseMailDefined类,用于描述邮件发送过程中需要的参数:发送者、接受者、邮件标题、邮件文本内容。
定义MailSenderFactory类,用于对普通文件邮件,夹带附件的邮件、嵌入图片的邮件三种形式的邮件的发送。其中JavaMailSender 采用spring注入的其实现类org.springframework.mail.javamail.JavaMailSenderImpl。
public class MailSenderFactory {
private JavaMailSender javaMailS
public void setJavaMailSender(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailS
* 简单邮件发送
* @param bmd
public void senderSimpleMail(BaseMailDefined bmd){
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom(bmd.getFrom());
msg.setText(bmd.getText());
msg.setTo(bmd.getTo());
msg.setSubject(bmd.getSubject());
javaMailSender.send(msg);
* 发送添加附件的邮件
* @param bmd
* @throws MessagingException
public void senderMimeMail(BaseMailDefined bmd) throws MessagingException{
MimeMessage msg = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(msg, true);
helper.setTo(bmd.getTo());
helper.setText(bmd.getText());
helper.setFrom(bmd.getFrom());
helper.setSubject(bmd.getSubject());
helper.setSentDate(new Date());
//夹带附件
FileSystemResource file = new FileSystemResource(new File("E:/task/ip2.rar"));
helper.addAttachment("ip2.rar", file);
javaMailSender.send(msg);
* 发送内嵌图片或html的邮件
* @param bmd
* @throws MessagingException
public void senderHtmlMail(BaseMailDefined bmd) throws MessagingException{
MimeMessage msg = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(msg, true);
helper.setTo(bmd.getTo());
helper.setText(bmd.getText());
helper.setFrom(bmd.getFrom());
helper.setSubject(bmd.getSubject());
helper.setSentDate(new Date());
//内嵌式图片或html样式
helper.setText("&html&&body&&img src='cid:identifier1235'&&/body&&/html&", true);
FileSystemResource res = new FileSystemResource(new File("E:/task/ip2.png"));
helper.addInline("identifier1235", res);
javaMailSender.send(msg);
public class BaseMailDefined {
protected S
protected S
protected S
protected S
public String getText() {
public String getTo() {
public String getFrom() {
public String getSubject() {
public void setText(String text) {
this.text =
public void setTo(String to) {
public void setFrom(String from) {
this.from =
public void setSubject(String subject) {
this.subject =
测试方法:
public static void main(String[] args) throws Exception {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(
new String[] { "ApplicationContext.xml" });
MailSenderFactory factory = (MailSenderFactory) ctx.getBean("mailFactory");
BaseMailDefined bmd = (BaseMailDefined) ctx.getBean("baseMail");
factory.senderSimpleMail(bmd);
factory.senderMimeMail(bmd);
factory.senderHtmlMail(bmd);
&bean id="sender" class="org.springframework.mail.javamail.JavaMailSenderImpl"&
&property name="host"&
&value&&/value&
&/property&
&property name="username"&
&value&handouName&/value&
&/property&
&property name="password"&
&value&handouPassword&/value&
&/property&
&property name="javaMailProperties"&
&prop key="mail.smtp.auth"&true&/prop&
&/property&
&bean id="mailFactory" class="com.handou.mail.MailSenderFactory"&
&property name="javaMailSender"&
&ref bean="sender" /&
&/property&
&bean id="baseMail" class="com.handou.mail.BaseMailDefined"&
&property name="to"&
&value&&/value&
&/property&
&property name="from"&
&value&&/value&
&/property&
&property name="subject"&
&value&test&/value&
&/property&
&property name="text"&
&value&this is a test mail !!&/value&
&/property&
sjeveryday
浏览: 153349 次
来自: 上海
很好,一致纠结图片路径问题
值得学习,
不知道都是哪里来的。请教大家论坛里帖子的附件怎么下载呢?谢谢!_中华会计网校论坛
今日新帖:1045 在线学员:16284
论坛等级: ★学员
学术级别: 实习生
鲜花:<span id='flower
金币:<span id='medal9
看到好的帖子,着急下载,可是今天第一次进来,不知道怎么下载,谁能帮帮我?谢谢了
楼主其他文章
最美女会计
1455主题帖
1735问答数
论坛等级: 论坛元老
学术级别: 高级会计师
回帖:14862
经验:81901
鲜花:<span id='flower8
金币:<span id='medal5767
直接点击附件就可以下载的!
好管理就是我,我就是好管理!中华好管理——胖大宝!我为自己代言!
论坛等级: 白金会员
学术级别: 会计员
回帖:1063
经验:5181
鲜花:<span id='flower
金币:<span id='medal5
直接点击附件就可以下载的
论坛等级: 白金会员
学术级别: 实习生
回帖:1258
经验:4841
鲜花:<span id='flower
金币:<span id='medal908
直接点击附件可以下载
论坛等级: 终极会员
学术级别: 中级会计师
回帖:6163
经验:17329
鲜花:<span id='flower
金币:<span id='medal3949
支持楼上!
希望考试通过
论坛等级: ★学员
学术级别: 实习生
鲜花:<span id='flower
金币:<span id='medal9
谢谢大家,昨晚可能是用手机操作没反应,已经下载了。
正保培训项目
我的新动态CXF之二(上传及下载附件) - yufenfei - ITeye博客
博客分类:
CXF是支持对附件上传的协议MTOM。
MTOM(SOAP Message Transmission Optimization Mechanism)SOAP 消息传输优化机制,可以在SOAP 消息中发送二进制数据,与SAAJ 传输附件不同,MTOM需要XOP(XML-binary Optimized Packing)来传输二进制数据。MTOM 允许将消息中包含的大型数据元素外部化,并将其作为无任何特殊编码的二进制数据随消息一起传送。MTOM 消息会打包为多部分相关 MIME 序列,放在SOAP 消息中一起传送。因此你可以看出MTOM 并不是将附件转为Base64 编码,这样可以大大的提高性能,因为二进制文件转Base64 编码会非常庞大。
MTOM 方式中要传输的附件必须使用javax.activation.DataHandler 类,然后对象类型还要使用@javax.xml.binding.annotation.XmlMimeType 进行注解,标注这是一个附件类型的数据。
这里拿上传及下载用户的图像为例子,大致的说下CXF的MTOM协议对附件的支持
1、POJO对象类的处理
@XmlRootElement(name="User")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name="User")
public class User {
@XmlElement(nillable=true)
@XmlElement(nillable=true)
@XmlElement(nillable=true)
@XmlMimeType("application/octet-stream")
private DataHandler imageD //人员的图像
public User() {}
public User(Long id, String name, int age) {
this.name =
this.age =
public Long getId() {
public void setId(Long id) {
public String getName() {
public void setName(String name) {
this.name =
public int getAge() {
public void setAge(int age) {
this.age =
public DataHandler getImageData() {
return imageD
public void setImageData(DataHandler imageData) {
this.imageData = imageD
注意:图像的类型必须为DataHandle类型。这里标注imageData 是一个二进制文件(application/octet-stream),当然你也可以使用具体的MIME类型,譬如:image/jpg、image/gif 等,但你要考虑客户端是否有对应的类型(因为JAVA语言之外的客户端的特性未必是你完全了解的),而且javax.activation.*中的MIME 的相关API 可以完成MIME 类型的自动识别。这里你要注意的是必须在类上使用@XmlAccessorType(FIELD)注解,标注JAXB 在进行JAVA 对象与XML 之间进行转换时只关注字段,而不关注属性(getXXX()方法),否则发布Web 服务时会报出现了两个imageData 属性的错误
2、让你要在服务端和客户端分别启用MTOM 支持。可以与spring整合后,可以修改CXF的spring配置文件,来启用MTOM
t添加代码如下:
&jaxws:properties&
&entry key="mtom-enabled" value="true" /&
&/jaxws:properties&
这段内容加到&jaxws:server … 、&jaxws:endpoint … 、&jaxws:client … 之间即可,例如:
&jaxws:endpoint id="helloWorld" implementor="#HelloWorldImpl" address="/HelloWorld" &
&!-- 输入日志拦截器 --&
&jaxws:inInterceptors&
&ref bean="inMessageInterceptor"/&
&/jaxws:inInterceptors&
&!-- 输出日志拦截器 --&
&jaxws:outInterceptors&
&ref bean="outMessageInterceptor"/&
&/jaxws:outInterceptors&
&jaxws:properties&
&entry key="mtom_enabled" value="true"&&/entry&
&/jaxws:properties&
&/jaxws:endpoint&
也可以使用Java Code 实现启用MTOM
3、具体实现
(1)HelloWorld.java接口添加如下两个方法
@WebMethod
public User getUser();
@WebMethod
public void updateUser(@WebParam(name="user")User user);
(2)HellWorld.java实现接口添加的两个方法
* &修改用户信息,包括上传用户的图像
* 创 建 人:
* 创建时间:
下午04:50:23
* @param user
* @see [类、类#方法、类#成员]
public void updateUser(User user){
System.out.println("姓名:"+user.getName()+",年龄:"+user.getAge());
DataHandler handler = user.getImageData();
InputStream is = handler.getInputStream();
OutputStream os = new FileOutputStream(new File("c:\\test11.jpg"));
byte[] b = new byte[100000];
int bytesRead = 0;
while ((bytesRead = is.read(b)) != -1) {
os.write(b, 0, bytesRead);
os.flush();
os.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
* 查询用户信息,包括以附件的形式返回用户的图像
* 创 建 人:
* 创建时间:
下午04:49:43
* @see [类、类#方法、类#成员]
public User getUser(){
User user =new User(11L,"李四",21);
user.setImageData(new DataHandler(new FileDataSource(new File("d:"+File.separator)+"test.jpg")));
User user =client.getUser();
//修改用户信息,包括上传图像
user =new User(12L,"王五",23);
DataSource source = new FileDataSource(new File("d:"+File.separator+"test.jpg"));
user.setImageData(new DataHandler(source));
client.updateUser(user);
//查询用户信息
InputStream is = user.getImageData().getDataSource().getInputStream();
OutputStream os = new FileOutputStream(new File("d:"+File.separator+"test11.jpg"));
byte[] b = new byte[100000];
int bytesRead = 0;
while ((bytesRead = is.read(b)) != -1) {
os.write(b, 0, bytesRead);
os.close();
is.close();
附件中的Demo所需要的jar,请在【CXF之一 (与Spring整合)】中下载
下载次数: 363
浏览: 580091 次
来自: 北京
renguoliang0508 写道你好,我又来了,按你这里的 ...
你好,我又来了,按你这里的实现。POST形式中获取不到参数。请 ...
首先对您标示感谢,从拦截器的实现那篇参照做的,过程有点异常最终 ...
请问这你2个压缩包为什么打成2个呢,下载之后解压失败。所以看不 ...
谢谢,成功了jquery-easyui实现页面布局和增删改查操作(SSH2框架支持) - jQuery - web - ITeye论坛
jquery-easyui实现页面布局和增删改查操作(SSH2框架支持)
& 上一页 1
锁定老帖子
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
来自: 成都
发表时间:&&
最后修改:
相关知识库:
前几天心血来潮用jquery-easyui+spring、struts2、hibernate实现了一个系统的一小部分功能,下面给大家分享一下。
首先看运行效果:
【图一:登录页】
【图二:页面布局】
【图三:用户编辑层】
【图四:确认弹出框】
easyui插件简介在这就不赘述了,大家可以在iteye上找到很多该插件的相关消息。
如果页面需要使用easyui插件,需要引进一下js和css(使用的时候需要注意easyui版本依赖的jquery.js版本要对应):
&script type="text/javascript" src="&%=root%&/Web/common/js/jquery-1.4.4.min.js"&&/script&
&link rel="stylesheet" type="text/css" href="&%=root%&/Web/common/js/easyui/themes/default/easyui.css"&
&link rel="stylesheet" type="text/css" href="&%=root%&/Web/common/js/easyui/themes/icon.css"&
&script type="text/javascript" src="&%=root%&/Web/common/js/easyui/js/jquery.easyui.min.js"&&/script&
&script type="text/javascript" src="&%=root%&/Web/common/js/easyui/js/easyui-lang-zh_CN.js"&&/script&
为了让一个主页实现上下左右中的布局方式显示,这里就需要用到easyui一个叫layout的东西,通常有多种方式可以实现布局。
①使用js创建layout
首先定义一个div,设置region,title等属性(注html是没有region属性的,这是easyui专属属性)
&div id="cc" style="width:600height:400"&
&div region="north" title="North Title" split="true" style="height:100"&&/div&
&div region="south" title="South Title" split="true" style="height:100"&&/div&
&div region="east" iconCls="icon-reload" title="East" split="true" style="width:100"&&/div&
&div region="west" split="true" title="West" style="width:100"&&/div&
&div region="center" title="center title" style="padding:5background:#"&&/div&
然后在js中指定id为cc的div为layout:
$('#cc').layout(options);
简单介绍几个layout属性:
指定布局的标题名称
指定布局位置,分:东、西、南、北、中
是否显示边界
是否显示分界线从而用户可以拖动改变其大小
指定布局的图标样式
指定该布局远程调用的html路径
②让整个body使用easyui的cssclass:class="easyui-layout"自动创建layout
这也是我使用的方式,看下面代码:
&body class="easyui-layout"&
&!-- 正上方panel --&
&div region="north" style="height:100padding:10" href="&%=root%&/Web/common/page/top.html"&&/div&
&!-- 正左边panel --&
&div region="west" title="菜单栏" split="true" style="width:280padding1:1overflow:"&
&div class="easyui-accordion" fit="true" border="false"&
&!-- selected --&
&div title="用户权限管理" selected="true"&
&li&&a href="javascript:addTab('tabId_loginInfo','用户管理','&%=root%&/ospm/loginInfo/goLoginInfoMain.jhtml');"&用户管理&/a&&/li&
&li&&a href="javascript:addTab('tabId_privilege','权限管理','&%=root%&/ospm/loginInfo/goPrivilegeMain.jhtml');"&权限管理&/a&&/li&
&!-- 正中间panel --&
&div region="center" title="功能区" &
&div class="easyui-tabs" id="centerTab" fit="true" border="false"&
&div title="欢迎页" style="padding:20overflow:"&
&div style="margin-top:20"&
&h3&你好,欢迎来到权限管理系统&/h3&
&!-- 正下方panel --&
&div region="south" style="height:50" align="center"&
作者:白糖&br/&
运行效果如【图二:页面布局】
创建选项卡
【图二:页面布局】上面标记了在菜单栏点击“用户管理”链接即可在功能区创建一个叫“用户管理”的选项卡并加载相应数据。注意:用户管理页面是另一个jsp,需要远程调用。
最初我使用tabs的href属性来远程调用用户管理jsp,发现页面会有js冲突,导致用户管理页面的添加、编辑等各种功能失效,我猜想可能是js冲突,因为布局页引用了easyui,而用户管理jsp也引用了同样的easyui。
后来看了下项目经理ext的布局代码,原来在点击链接的时候会创建一个tabs,只是tabs的内容是一个iframe分隔:
* 创建新选项卡
* @param tabId
* @param title
选项卡标题
* @param url
选项卡远程调用路径
function addTab(tabId,title,url){
//如果当前id的tab不存在则创建一个tab
if($("#"+tabId).html()==null){
var name = 'iframe_'+tabId;
$('#centerTab').tabs('add',{
title: title,
closable:true,
cache : false,
//注:使用iframe即可防止同一个页面出现js和css冲突的问题
content : '&iframe name="'+name+'"id="'+tabId+'"src="'+url+'" width="100%" height="100%" frameborder="0" scrolling="auto" &&/iframe&'
不过群里也有些大神提醒:如果大量使用iframe会使页面性能降低,所以使用iframe分隔tabs只适合小型项目使用。
datagrid表格
easyui datagrid是争议最大的一个功能插件,很多人说它不开源,提供的api不全面,标题列内容可能不对齐,操作繁杂等等。其实个人觉得这个table的功能已经相当不错了,如果只需要做基本的显示则只需配很少的代码。
下面简单介绍下datagrid的使用:
①首先肯定需要有一个table标签,给它定义一个id,在js中通过id.datagrid方法即可创建表格
&table id="tt"&&/table&
$('#tt').datagrid(options);
②创建表格的列名有两种方式:第一种是直接在table标签中定义,第二种是在js中定义:
我使用的是第一种方式:
&!-- 表格 --&
id="loginInfoTable"
title="用户信息一览"
border="0"
cellspacing="0"
cellpadding="0"
iconCls="icon-edit"
width="98%"
idField="loginId"
pagination="true"
remoteSort="false"
singleSelect="false"
showFooter="false"
striped="true"
url="&%=root%&/ospm/loginInfo/doLoginInfoSearch.jhtml"&
&tr align="center"&
&th field="ck" width="20" checkbox="true" width="20"&&/th&
&th field="loginCode"
width="200"&用户名&/th&
&th field="statuValue"
width="100"&状态&/th&
&th field="opt" formatter='optFormater' width="150"&操作&/th&
第二种方式如下:
columns:[[
{field:'itemid',title:'Item ID',rowspan:2,width:80,sortable:true},
{field:'productid',title:'Product ID',rowspan:2,width:80,sortable:true},
{title:'Item Details',colspan:4}
{field:'listprice',title:'List Price',width:80,align:'right',sortable:true},
{field:'unitcost',title:'Unit Cost',width:80,align:'right',sortable:true},
{field:'attr1',title:'Attribute',width:100},
{field:'status',title:'Status',width:60}
③向后台请求数据
datagrid有一个属性叫url,在进入页面后,它会通过ajax方式向后台发送请求,后台封装相应数据(JSON格式)再返回给前台即可显示。注意:datagrid在回调函数中必须获得两项json数据:total表示查询出的总结过,rows表示显示在table中的数据集合。
* 封装Json数据
long total = 0; // 符合查询的总条数
List&LoginInfoTableDto& lstTable = // 查询结果
total = (Long) mapLoginInfo.get(Constant4Ospm.TOTAL);
if (mapLoginInfo.get(Constant4Ospm.SEARCH_RESULT) != null) {
lstTable = (List&LoginInfoTableDto&) mapLoginInfo
.get(Constant4Ospm.SEARCH_RESULT);
//注:如果从数据库查询不出数据,也必须封装一个空的json集合,不然页面就会报js错误
lstTable = new ArrayList&LoginInfoTableDto&();
JSONObject datas = new JSONObject();
// 设置总共有多少条记录
datas.put(Constant4Ospm.TOTAL, total);
// 设置当前页的数据
datas.put(Constant4Ospm.PAGE_SIZE, lstTable);
④后台数据与表格关联
后台过来的数据怎么与表格每一列对应呢?其实很简单:后台rows中包含了名叫LoginInfoTableDto的javabean-json集合,datagrid的field和idField对应LoginInfoTableDto中的一个属性(大体上是这样,当然field也可以不对应javabean的属性,你可以进行一些转换)。
⑤toolbar工具栏
【图二:页面布局】能够看到datagrid有“添加新用户”、“批量删除”等工具栏,这些工具栏的实现方式也很简单:
$('#loginInfoTable').datagrid({
toolbar:[{//正上方工具栏
text:'添加新用户',
iconCls:'icon-add',
handler:function(){
//点击工具栏运行的js方法
openDialog_add();
text:'批量删除',
iconCls:'icon-cancel',
handler:function(){
batch('delete');
...............
当然easyui datagrid还有很多其它的功能,网上有很多大神已经详细介绍过,这里就不赘述了。
对话框的使用也很简单:你只需要定义一个带id的div,在div中填入你需要在对话框中显示的内容,然后调用一下方法即可变成easyui的dialog:
&div id="dd" title="My Dialog" style="width:400height:200"&
Dialog Content.
$('#dd').dialog(options);
前面【图三:用户编辑层】就是一个dialog,大家看下代码:
&!-- 编辑 --&
&div id="loginInfoEdit" icon="icon-save"
style="padding: 5 width: 500 height: 300"&
&h5 id="loginInfoEdit_message" style="color:"&&/h5&
&div class="ToolTip_Form" id="table_loginInfoEdit" onkeydown="if(event.keyCode==13){loginInfoEdit();}"&
&input type="hidden" id="loginInfoEdit_loginId"&&/input&
&label&用户名:&/label&
&label id="loginInfoEdit_loginCode"&&/label&
&label&密码:&/label&
&input type="password" class="easyui-validatebox" id="loginInfoEdit_password" maxlength="20" required="true"&&/input&
&label&重复密码:&/label&
&input type="password" class="easyui-validatebox" id="loginInfoEdit_repassword" maxlength="20" required="true"&&/input&
&a href="#" class="easyui-linkbutton" icon="icon-ok" onclick="loginInfoEdit();"&提交&/a&
//设置弹出框的属性
function setDialog_edit(){
$('#loginInfoEdit').dialog({
title : '用户编辑',
modal: true,
//模式窗口:窗口背景不可操作
collapsible : true,
//可折叠,点击窗口右上角折叠图标将内容折叠起来
resizable : true
//可拖动边框大小
//打开对话框
function openDialog_edit(loginId,loginCode){
loginInfoEditReset(loginId,loginCode);
$('#loginInfoEdit').dialog('open');
//关闭对话框
function closeDialog_edit(){
$('#loginInfoEdit').dialog('close');
messager消息框
【图四:确认弹出框】就是一个消息框,easyui它可以模仿html的alert()、confirm()等提示框,而且画面更美观。
图四批量禁用的代码如下:
//禁用操作
$.messager.confirm('禁用提示', '你确定禁用下列用户吗?&br/&'+cods.join(','), function(r){
var url = root+'/ospm/loginInfo/doLoginInfoInvalid.jhtml?loginId='+loginId;
changeStatus(url);
很抱歉,只完成了用户管理一个模块的功能。
附件带项目源码,希望对大家有所帮助。(源码一包含项目源码和数据库,源码二包含项目jar包)
关键jar版本:hibernate3.3、spring2.6、struts2.1
数据库:mysql5.1
数据库连接池:bonecp 0.7
项目类型:eclipse - dynamic web project
登录帐号:admin
密码:admin
部署方式:
①下载“源码一”和“源码二”,然后分别解压 ②源码一包含项目源码和部分jar包以及*.sql;源码二包含其余jar包,直接放入OSPM\WebRoot\WEB-INF\lib目录下即可 ③使用eclipse打开,import导入项目 ④修改OSPM/config/mysql-jdbc.properties数据库连接帐号密码 ⑤使用eclipse自带插件:servers部署启动项目 ⑥访问http://localhost:8080/OSPM即可 需要注意的是,这个项目是eclipse下创建的dynamic web project不是tomcat项目 另一种方案: 完成上面①~④步骤以后把项目export成war包,直接放到tomcat的webapps下然后启动
下载次数: 21633
下载次数: 16425
dingchao.lonton
等级: 初级会员
来自: 成都
发表时间:&&
敢问楼主在哪家公司供职
请登录后投票
dingchao.lonton
等级: 初级会员
来自: 成都
发表时间:&&
成都支付宝,求内推,有意愿的请联系
请登录后投票
来自: 成都
发表时间:&&
dingchao.lonton 写道敢问楼主在哪家公司供职
一个国企的子公司,只有国企的体制,没有国企的待遇
请登录后投票
等级: 初级会员
发表时间:&&
楼主是银海的吗?还是30所的?同为成都javaer。easyui用了几个项目了。感觉还行,有空可以交流一下。
请登录后投票
等级: 初级会员
来自: 成都
发表时间:&&
成都的哦,那就支持一下,我现在项目也是用easyui开发的
请登录后投票
等级: 初级会员
来自: 苏州
发表时间:&&
我们也在用这个
请登录后投票
等级: 初级会员
来自: 深圳
发表时间:&&
确信靠谱?
请登录后投票
等级: 初级会员
来自: 厦门
发表时间:&&
最后修改:
最近我也在写这块的.我也上传一下更LZ共享一下.呵呵.顺便提点疑问.
这个是主页面:
这个是点击下面的横幅,模仿mac 的 鼠标移动在上面会有驼峰效果
采用ajax 来读取后才数据 并且用dataGird来进行展现 读取的时候画面会显示进行等待
选中其中一条数据 点击进行更新 弹出easyui的window 并且将改条数据的内容传到window 部分设置了不可修改
点击OK window 关闭 并且 弹出messager
成功则 弹出 提醒
选中记录 点击删除 弹出 确认框
点击添加 弹出对话框 还是刚刚那个window& 用来easyui的ValidateBox
数据还支持排序
好了到了提问的时间了.
小弟碰到一个问题 本来点击列 即是上面"序号" 的是否会弹出右键菜单 取消则该列的数据都不会显示
但是显示不正确
上面是实际的 下面的是理想的 不知道什么原因
这个是测试输出的效果
不知道有没那位有过相关经验
还有关于我现在的构架有点疑问:
如果照这样写的话 那前端的script不是很大了 而且还比较凌乱. 大家给点建议吧
请登录后投票
等级: 初级会员
来自: 厦门
发表时间:&&
相关代码/blog/1072163
有兴趣的朋友可以去参考参考.就不在这贴了 免得太乱
请登录后投票
& 上一页 1
跳转论坛:移动开发技术
Web前端技术
Java企业应用
编程语言技术

我要回帖

更多关于 iteye账号共享 的文章

 

随机推荐