Ha? Have a Talk. Menu

Permalink:

SVN的搭建与迁移

1.链接

  官网下载:http://subversion.apache.org/packages.html
  SVN客户端:TortoiseSVN,官网下载:http://tortoisesvn.net/downloads.html


2.安装

  在CentOS的终端中运行以下命令:

yum install subversion

新建一个目录

  用于存储SVN所有文件

mkdir /svn

新建一个svn项目

# svnadmin create /svn/project

  目录中包含以下文件及文件夹

# ls /svn/project/
conf
db
format
hooks
locks
README.txt

目录用途说明
lhooks目录:放置hook脚本文件的目录
llocks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端
lformat文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号
lconf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)


3.配置

svnserve.conf文件

  svn服务的配置文件

# vi /svn/project/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = /svn/project/conf/passwd#密码配置文件的位置
authz-db = /svn/project/conf/authz#权限配置文件的位置
realm = My Test Repository#svn提示信息

用户及密码passwd

# vi /svn/project/conf/passwd
[users]
xiaoran.shen = 123456
test1 = 123456
test2 = 123456

注意:对用户配置文件的修改立即生效,不必重启svn服务。

用户授权authz

# vi /svn/project/conf/authz
[groups]
admin = xiaoran.shen,test1
user = test2
[/]
@admin = rw
@user = r
* =

Continue reading…

  • Thanks for leaving a comment, please keep it clean. HTML allowed is strong, code and a href.

Permalink:

OSX EI Captain 更改应用图标

闲着没事给自己的Mac换了一套图标,效果图如下示,期间遇到各种坑无数,现记下遇过的坑的描述、说明及解决方案,与大家分享。注:本机为MacBook Pro(Retina,13-inch),系统版本为OS X EI Capitan (11.11.2) 。
Dock

1 图标

1.1 icns

icns是Mac OS X系统专有的应用或者文件图标的格式,与windows或者linux下的ico或png格式类似。Image file used to store icons for a Mac OS X application; 一般应用的图标文件在资源目录(Contents Resources directory) ,也可以可以通过在Finder中点击应用、文件或文件夹->查看简介->拖动(或复制)icns格式的图片到直接拖动简介中。另外也有地方运用的是PNG图片,如Dock中的Finder及Trash图标。

1.2 CandyBar

有OSX有教程用终端命令:

iconutil -c icns /路径/icon.iconset

生成相应的icns图标的教程,具体参考《OS X 程序图标的美化》 ,本文推荐用CandyBar批量生产icns图标,另同类软件还有image2icns等。CandyBar 是一个免费的icns图标批量转换,应用图标及Dock图标批量替换的软件,用官方提供激活码激活使用。

官方下载链接
panic.com
PPQA-YAMA-E3KP-VHXG-B6AL-L

1.3 artcore

artcore是一个德国艺术家,个人主页是artcore,我用的是artcore早期的作品,在iconarchive上可以下载到图标全集。
Dock

Continue reading…

  • lilian

    Finder Trash在Dock中是怎么改的啊?你那个在terminal中键入什么什么的。。没命令行啊!好焦急啊

  • 大菜头

    不好意思,没注意到CDN加速插件和代码高亮插件冲突了,现在可以了。

  • Thanks for leaving a comment, please keep it clean. HTML allowed is strong, code and a href.

Permalink:

MyBatis批量更新

业务需要,要完成批量编辑产品名称。运用Mybatis的批量更新功能,同时因为需要更新的数据是iterator迭代出来的,所以需要在前端做一个标记。
产品有产品ID、产品名称两个属性:
product

public class Product extends BaseEntity {
    /** 产品ID */
    private String productId;
    /** 产品名称 */
    private String name;
    /** 产品列表查询 */
    private List productList;
    //以下省了get和set方法...
}

Controller

@Action(value = "updateProduct", results = { @Result(name = "success", location = "/pages/backstage/manage-product-list.jsp") })
public String updateProduct() {
    product = new Product();
    product.setProductList(productList);
    UpdateProductService service = new UpdateProductService();
    service.setEntity(product);
    service.excuteService();
    return "success";
}

Service

public class UpdateProductService extends BaseService {
    protected Object makeService(Product entity, SqlSession sqlSession) {
        ProductDao dao = sqlSession.getMapper(ProductDao.class);
        dao.updateProduct(entity);
        return entity;
    }
}

Dao

public interface ProductDao {
    public int updateProduct(Product product);
}

Sql

<insert id="updateProduct" parameterType="com.xxxxx.product.entity.Product">
    replace into product (
        product_id,name
    ) values
    <foreach collection="productList" item="productList"
        index="index" separator=",">
        (#{productList.productId},
         #{productList.name})
    </foreach>
</insert>
<!--此处其实就是运用Mybatis的foreach标签来拼sql-->

html

<body>
    <script type="text/javascript">
        $(function() {
            $("#btn-save").on('click', function() {
                $("#updateProduct").submit();
            })
        });
    </script>
    <div class="panel panel-default">
        <div class="panel-heading">产品列表</div>
        <div class="panel-body">
            <ul class="tool-bar">
                <li><a href="javascript:void(0);" id="btn-save"><span
                        class="glyphicon glyphicon-floppy-disk"></span> 保存</a></li>
            </ul>
            <div class="double-line"></div>
            <s:form role="form" action="updateProduct" method="post"
                namespace="/admin" theme="simple">
                <br />
                <ul class="list-group">
                    <s:iterator value="product.productList"
                        status="statusTest">
                        <li class="list-group-item list-group-item-text">
                            <h5>产品列表</h5> <s:hidden
                                name="%{'productList['+#statusTest.index+'].productId'}"
                                value="%{productId}"></s:hidden>
                            <div class="form-group input-group">
                                <span class="input-group-addon"> <span
                                    class="glyphicon glyphicon-pencil"></span> 标题
                                </span>
                                <s:textfield cssClass="form-control"
                                    name="%{'productList['+#statusTest.index+'].name'}"
                                    value="%{name}"></s:textfield>
                            </div>
                        </li>
                    </s:iterator>
                </ul>
            </s:form>
        </div>
    </div>

如下图所示:
edit-product

  • Thanks for leaving a comment, please keep it clean. HTML allowed is strong, code and a href.

Permalink:

jforum二次开发相关笔记——(一)页面请求机制

jforum二次开发相关笔记

1. 引言

jforum是Rafael Steil开发的一个基于JAVA的开源论坛,采用BSD开源协议,可以最大限度的进行任何修改和扩展,包括商业用途。它提供了诸如SSO之类的抽象接口,具有完全的权限控制、支持包括中文在内的十几种语言、可自定义的用户接口、安全、多数据库支持等特性。JForum 采用 FreeMarker作为页面模板引擎。jforum的介绍这里不再敷述,因项目需要,需要对jforum进行修改、实现从CS平台登录以后单点登录到jforum,因为jforum只支持唯一用户名标识,所以还需对jforum进行二次开发。(注:本文的jforum版本为2.1.9。)

2. jforum的页面请求机制

将jforum导入到eclipse可以参考《Java开源论坛JForum二次开发技术资料之导入安装》。以最简单的在一个登陆用户进入个人资料页为例:
jforum导航栏

2.1 处理url

用户点击个人资料,页面请求的url为/user/edit/session中获取的用户Id如header.htm源码所示:
/jforum/WebContent/templates/default/header.htm

<a id="myprofile" class="mainmenu" href="${JForumContext.encodeURL("/user/edit/${session.userId}")}">
<img src="${contextPath}/templates/${templateName}/images/icon_mini_profile.gif" border="0" alt="[Profile]" /> 
${I18n.getMessage("ForumBase.profile")}

JForum中的JForumContext.encodeURL方法(注:实现在/jforum/src/net/jforum/context/JForumContext.java下)根据请求的url中的useredit在modulesMapping.properties中查询user对应的配置项:

/jforum/WebContent/WEB-INF/config/modulesMapping.properties

user=net.jforum.view.forum.UserAction

2.2 查询action

根据请求的url中的edit在相应的UserAction中找到edit方法:

/jforum/src/net/jforum/view/forum/UserAction.java

public void edit() {
    if (this.canEdit()) {
        int userId = this.request.getIntParameter("user_id");
        UserDAO um = DataAccessDriver.getInstance().newUserDAO();
        User u = um.selectById(userId);
        this.context.put("u", u);
        this.context.put("action", "editSave");
        this.context.put(
                "pageTitle",
                I18n.getMessage("UserProfile.profileFor") + " " +u.getUsername());
        this.context.put("avatarAllowExternalUrl", SystemGlobals.getBoolValue(ConfigKeys.AVATAR_ALLOW_EXTERNAL_URL));
        this.setTemplateName(TemplateKeys.USER_EDIT);
    }
}

Continue reading…

  • Thanks for leaving a comment, please keep it clean. HTML allowed is strong, code and a href.

Permalink:

一个8块钱的域名引发的

开始

大前天,突然发现新网的.xyz域名只有8块钱(只有8块钱,你没有看错,你没有看错,不是98,不是48,是8块钱呵呵呵),于是我就注册了一个http://hehehe.xyz ,感觉这个域名和我气质还是挺相符的呵呵呵。
然后有了个域名,得搭个网站,之前的http://dacaitou.me是windows下用wordpress +sourceforge搭的,这回就换一个高级一点的Linux下用Jekyll + Github Page 好了。好的我们开始装Jekyll,那就看官方文档好了,(还可以参考Jekyll中文 、告别wordpress,拥抱jekyll)打开终端敲,好了,艾玛第一句终端就给我黑在那几分钟是闹哪样啊!!!
1
学长说gem的官方源经常卡住,没有问题,我们换成淘宝源。然后官方源顺利删掉了,但是淘宝源添不进去是要怎样啊。
2
会不会是ruby版本不够啊,更新到最新版,那啥还要装rvm,那就装吧(参考RVM 实用指南 、rvm 安装 Ruby ),装完再用rvm装个最新版的ruby吧,那啥,ruby还是1.9.2版本是闹哪样啊,然后就找啊找,找到一个说单用户模式安装要先切换,那就果不其然,淘宝源还是添不上啊摔。
Continue reading…

  • Thanks for leaving a comment, please keep it clean. HTML allowed is strong, code and a href.