Ha? Have a Talk. Menu

WEB

Permalink:

Django model.py转化为数据模型图

占坑代填
Win10 64位 Python2.7下 Django apps中 model.py转化为数据模型图

问题

  • graphviz
  • include-path & install-option
  • –global-option=”-I/L
  • pygraphviz.whl
  • graph_extension
  • dot.exe
  • apps not project
  • python manage.py graph_models testapp -o model.png

参考链接

http://www.jianshu.com/p/109ae626b732
https://stackoverflow.com/questions/22324459/pygraphviz-valueerror-program-dot-not-found-in-path-python
https://github.com/pygraphviz/pygraphviz/issues/130
https://stackoverflow.com/questions/40809758/howto-install-pygraphviz-on-windows-10-64bit

  • 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.