`
tangxininjava
  • 浏览: 94528 次
  • 性别: Icon_minigender_1
  • 来自: 遂宁
社区版块
存档分类
最新评论

J2EE开发练手(第二章)

    博客分类:
  • J2EE
 
阅读更多

权限菜单就采用递归的方式,后续再优化。

通过页面来分析,页面如下:



 

 

 

 

 

利用dtree的话我数据表就这样设计:

CREATE TABLE `privilege` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  `parent_id` int(11) DEFAULT NULL,
  `url` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  `code` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=327 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

 

    直接拿全部记录出来,效果如下:

 

 

   

 

  直接增加下一级菜单有点让人不明白,所以改了下:

 

  

 

 

  想学习oracle于是把ibatis底部配置更改为oracle的配置,改了之后出现了一下问题:

 

信息: 
    SELECT
        ID ,NAME 
    FROM
        USERS limit 10 
2013-2-18 15:31:23 net.sf.log4jdbc.Slf4jSpyLogDelegator exceptionOccured
严重: 4. PreparedStatement.execute() SELECT                ID ,NAME          FROM USERS limit 10
java.sql.SQLException: ORA-00933: SQL 命令未正确结束

 

   查看sql,这事mysql的配置为何会到oracle中去了呢?

 

    跟踪排错中....

 

   原因找到了因为我使用使用了rapid-framework,里面有spring的相关配置如下:

 

  

  <!-- rapid SqlMapClientFactoryBean与spring SqlMapClientFactoryBean的区别是可以指定sqlExecutor -->
    <bean id="sqlMapClient" class="cn.org.rapid_framework.ibatis.spring.SqlMapClientFactoryBean">
        <property name="configLocation">
            <value>classpath:sql-map-config.xml</value>
        </property>
        <property name="mappingLocations">
        	<value>classpath*:/com/**/model/**/*SqlMap.xml</value>
        </property>
        <property name="dataSource" ref="dataSource"/>
        
        <!-- 指定数据库分页方言Dialect, 其它方言:OracleDialect,SQLServerDialect,SybaseDialect,DB2Dialect,PostgreSQLDialect,MySQLDialect,DerbyDialect,HSQLDialect-->
        <property name="sqlExecutor">
        	<bean class="cn.org.rapid_framework.ibatis.sqlmap.engine.execution.LimitSqlExecutor">
        		<property name="dialect">
        			<bean class="cn.org.rapid_framework.jdbc.dialect.MySQLDialect"/>
        		</property>
        	</bean>
        </property>
    </bean>

 

  

    关于树形菜单的选中,如果父节点选中子节点都需要选中,这个功能我不使用递归来做,因为我不会,换种思路来做,首先如果用户点击父节点

 

    

 

     

 

 

 

   这个我是用js(jquery)来实现的:

  

function selectCheckbox(obj){
	
	       var check = $(obj).attr("checked");
          
          $(obj).parent(".dTreeNode").next().find("input[type='checkbox']").each(function(index,ele){
                    $(ele).attr("checked",check);
           });
		  
          

      }

 

   那么如果首先选择的是子节点呢?

 

 

  先这种的话我决定在数据库中去存储一个字段,用来表示节点的上下关系,比如:$1$3$10$100

   这样的话100这个节点的父节点都会被选中了。 

 

   后面想了下这个还是js实现好点和逻辑混用了,网上搜索了下ztree很强大,有空就研究下提高下js功力。

演示地址:

   http://www.ztree.me/v3/demo.php#_208

 

   通过ztree的官方demo实现如下:

 

  

 

 

  • 大小: 56.7 KB
  • 大小: 55.8 KB
  • 大小: 55.9 KB
  • 大小: 50.1 KB
  • 大小: 52.8 KB
  • 大小: 74.2 KB
  • 大小: 71.1 KB
  • 大小: 30 KB
  • 大小: 53.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics