Google
      
发新话题
打印

新闻发布0.0.2-M3发布

新闻发布0.0.2-M3发布

新闻发布0.0.2-M3发布
(milestone里程碑3)

后台是java的,请使用jdk-1.5以上版本,和tomcat-5.5以上版本。

项目首页:http://code.google.com/p/anewssystem/
下载地址:https://sourceforge.net/project/showfiles.php?group_id=204197

发布的anews-0.0.2-M3.war是已经打包好的程序,可以直接放在tomcat下运行,自带了嵌入式数据库hsqldb,无需额外配置:)

anews-0.0.2-M3.zip是eclipse工程包,svn下的工程是maven2工程,有些包在公网上是找不到的,目前还没有明确哪些包需要额外提供,所以先用eclipse工程吧,那里边是全的。不过对于eclipse的使用经验太少,如果发现什么问题,请尽快反馈给我。echo_o@163.com

这个版本主要是bug清除和结构重构,删除了一些无用的jar依赖库和源代码,另外有一些增加的功能:

    * 新闻部分的上传图片功能,为了美化上传按钮,把type=file隐藏掉后,放上一个假按钮。
    * 修改管理新闻的布局部分,不是使用dialog而是依靠可收缩的south放置编辑新闻的form。
    * Ext.lingo.JsonGrid修改了ie下checkbox显示错位的问题,添加翻页后保存选中信息的功能。
    * 修改了jcaptcha显示的图片,现在文字更容易辨认了,建议来自(下一道彩虹4612462)
    * 修正了dialog标题错位的问题,建议来自(/aiq伊扬贝尔4046921)
    * 添加了一个项目跟踪面板,记录修改的问题,地址在http://localhost:8080/anews/tracker/index.htm


之前的0.0.2-M2中完成了权限模块的基本功能,包括

    * 照抄springside-2.0中权限模块的RBAC模型
    * 资源分为URL与METHOD两种,分别使用filter和aop拦截,实现权限管理
    * 角色与资源多对多关联
    * 角色与菜单也是多对多关联,实现不同角色显示不同菜单
    * 用户与角色多对多关联,一个用户会拥有多个角色中的资源
    * 提供extjs与acegi对接,密码MD5加密,可选择cookie自动登录,登录支持图片验证码


之前的0.0.2-M1中演示的JsonTree和JsonGrid的使用,这两个封装基本实现了最基本的tree与grid功能,而且在后台封装了对应的java类,前后台一起继承使用,结果就是大量的减少代码总量,看着干净。

树形实现的功能:

    * 异步读取节点(不过管理分类的时候需要读取所有节点)
    * 双击节点编辑节点内容
    * 拖拽排序
    * 右键弹出菜单,进行详细配置

grid实现的功能:

    * 分页
    * checkbox全选,多选
    * 按字段搜索
    * 弹出对话框,进行新增或修改数据
新版ext教程:http://www.family168.com/
请先阅读前言部分,免得出现争执,谢谢。

TOP

学习            

TOP

不错,都是最新技术

TOP

请教验证码

结合EXT怎么实现验证码,我的代码如下:
jsp页面:
<!--<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">-->
<%@ page contentType="text/html; charset=GBK" %>
<%
request.setCharacterEncoding("GBK");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Forms</title>
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>     
<script type="text/javascript" src="../../ext-all.js"></script>
<script type="text/javascript" src="formtest.js"></script>
<link rel="stylesheet" type="text/css" href="forms.css" />
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
<script type="text/javascript" src="../examples.js"></script>
<table align="center">
<tr><td align="center">新用户注册</td></tr>
<tr><td>
<div style="width:440px;">
    <div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>
    <div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc">
        <div id="form-ct">

        </div>
    </div></div></div>
    <div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>
</div>

</td></tr>
<tr><td></td></tr>

</table>
</body>
</html>
js代码:
/*

* Ext JS Library 1.1.1

* Copyright(c) 2006-2007, Ext JS, LLC.

* licensing@extjs.com

*

* http://www.extjs.com/license

*/



Ext.onReady(function(){

  //  Ext.QuickTips.init();

    // turn on validation errors beside the field globally
    Ext.form.Field.prototype.msgTarget = 'side';

        var form = new Ext.form.Form({
        labelAlign: 'right',
        labelWidth: 100
    });

        var loginName =  new Ext.form.TextField({
            fieldLabel: '用户名',
            name: 'loginlName',
            allowBlank:false
        });
        var password = new Ext.form.TextField({
            fieldLabel: '密    码',
            name: 'password',
                        inputType:'Password',
            allowBlank:false
        });
        var password2 = new Ext.form.TextField({
            fieldLabel: '确认密码',
            name: 'password2',
                        inputType:'Password',
            allowBlank:false
        });
        var email = new Ext.form.TextField({
            fieldLabel: '电子邮箱',
            name: 'email',
                        allowBlank:false,
            vtype:'email'
        });
        var question = new Ext.form.TextField({
            fieldLabel: '取回密码问题',
            name: 'question',
                        allowBlank:false
        });
        var anwser = new Ext.form.TextField({
            fieldLabel: '取回密码答案',
            name: 'answer',
                        allowBlank:false
        });
        var name = new Ext.form.TextField({
            fieldLabel: '真实姓名',
            name: 'name'
        });
        var company = new Ext.form.TextField({
            fieldLabel: '工作单位',
            name: 'company'
        });
        var state = new Ext.form.ComboBox({
            fieldLabel: '职    业',
            hiddenName:'state',
            store: new Ext.data.SimpleStore({
                fields: ['abbr', 'state'],
                data : ['AL', 'Alabama','AwL', 'Awlabama']
            })
        });
        var phone = new Ext.form.TextField({
            fieldLabel: '电    话',
            name: 'phone',
            value: '(888) 555-1212'
        });
        var mobile = new Ext.form.TextField({
            fieldLabel: '移动电话',
            name: 'moblie'
        });
        var fax = new Ext.form.TextField({
            fieldLabel: '传    真',
            name: 'fax'
        });
        var certCode = new Ext.form.TextField({
            fieldLabel: '身份证',
            name: 'certCode'
        });
        var userAddress = new Ext.form.TextField({
            fieldLabel: '通讯地址',
            name: 'userAddress'
        });
        var postCode = new Ext.form.TextField({
            fieldLabel: '邮政编码',
            name: 'postCode'
        });
        //想在verifyCode后面加个img显示生成的图片,可是不知道怎么加进去
        var verifyCode = new Ext.form.TextField({
            fieldLabel: '验证码',
            name: 'verifyCode',
                        width:120
        });
       

    form.column({width:400, labelWidth:100}); // open column, without auto close
    form.fieldset(
        {legend:'必填信息'},
        loginName,
                password,
                password2,
                email,
        question,
                anwser
    );
    form.fieldset(
        {legend:'选填信息,完整填写可以更好的享有本站的服务'},
         name,
                 company,
                 state,
         phone,
         mobile,
         fax,
         certCode,
                 userAddress,
                 postCode
    );
/*
        form.fieldset(
         {id:'wwg',legend:'ffff'}
        );
       
        Ext.QuickTips.init();
       

        Ext.get('wwg').createChild({
                tag:'img',
                id:'imgCode',
                align:'right',
                hspace:30,
                qtip:'刷新'
        });
//        var i = Ext.get('imgCode');
*/
    form.fieldset(
        {id:'vcode',legend:'Options', hideLabels:true},
        new Ext.form.Checkbox({
            boxLabel:'<a href=http://www.sohu.com>我已阅读并同意《******网服务条款》</a>',
            name:'extuser',
            width:'auto'
        })
    );

               

    form.end(); // close the column

    form.applyIfToFields({
        width:230
    });

    form.addButton('注册',v,{
                                                        hidden:true
                                });
       
    form.addButton({
                text: 'Insert',
                handler:v});

    form.render('form-ct');
        function v()
         {
                alert("KJK");
         }
        function checkLoginName(){
                alert('检查:'+loginName+'是否已被注册');
        }
loginName.on('blur',checkLoginName);
    // The form elements are standard HTML elements. By assigning an id (as we did above)
    // we can manipulate them like any other element
  /*  var photo = Ext.get('photo');
    var c = photo.createChild({
        tag:'center',
        cn: {
            tag:'img',
            src: 'http://extjs.com/forum/image.php?u=2&dateline=1175747336',
            style:'margin-bottom:5px;'
        }
    });
    new Ext.Button(c, {
        text: 'Change Photo'
    });

*/
   
   
});

TOP

先要渲染form。执行form.render(),生成了dom以后,再用Ext.get()获得你要操作的dom。然后用createChild生成对应的html就行了。

参考官方例子里的dynamic form,我看你也找对地方了
新版ext教程:http://www.family168.com/
请先阅读前言部分,免得出现争执,谢谢。

TOP

效率不行,十几条数据,操作起来好卡

TOP

发新话题