ExtJS 4元素与组件查询
ExtJS提供了丰富的API,允许使用类似CSS选择器的语法来进行元素、组件的查询
元素查询
CSS选择器
元素选择符
语法 | 说明 |
* | 匹配任何元素 |
E | 匹配标签名为E的元素 |
E F | 匹配所有E元素的F子代元素 |
E > F | 匹配所有E元素的直接F子元素 |
E + F | 匹配前面存在E元… |
11 years ago
0
ExtJS 4常用组件之表格
简介
ExtJS 4中表格、树具有共同的基类:Ext.panel.Table。ExtJS 4为表格引入了无限滚动的特性:仅渲染需要使用的特性,而不是像ExtJS 3一样把所有结构都渲染出来。
Grid的两大要素是Store和Columns,前者提供数据来源,后…
阅读全文
11 years ago
0
ExtJS 4中的数据处理
ExtJS 4的数据处理机制(data包)发生了很大的变化,包含了一些新增加的类,以及对原有的类的重构(提高性能)
概览
ExtJS 4引入了新的Model类,并且对Store、Proxy等类进行了重大的重构,data包的重要类的组织形式如下图:
模型(Mode…
阅读全文
11 years ago
0
浅析ExtJS新特性
ExtJS 6新特性
ExtJS与Sencha Touch的合并
ExtJS 6最重要的变化是,不再区分移动、桌面平台,所有设备上的应用程序都使用一个框架来开发。为了实现优化的用户体验,你仅仅需要编写少量的代码。
ExtJS与Sencha Touch的合并其实经历了很长的过程,在ExtJS 5中,框架的核心就被整理到core包中,便于两者的公用,ExtJS的可视化组件部分仍然留在Ext这个包中。现在,可视化组件部分被合并到一起,但是为了区分经典ExtJS、Touch…
阅读全文
11 years ago
0
SpringMVC知识集锦
基于仿冒的SpringMVC测试用例示意
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
package cc.gmem.demo.ctrl; import static org.junit.Assert.*; import javax.inject.Inject; import net.greenmemory.commons.lang.StringUtils; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.slf4j.LoggerFactory; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.transaction.TransactionConfiguration; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; import com.fasterxml.jackson.databind.ObjectMapper; @RunWith ( SpringJUnit4ClassRunner.class ) @ContextConfiguration ( locations = { "/spring-classgen-disabled.xml", "/spring-mvc.xml" } ) @TransactionConfiguration ( transactionManager = "txManager", defaultRollback = true ) public class SpringMVCControllerTest { private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger( SpringMVCControllerTest.class ); @Inject private RequestMappingHandlerAdapter handlerAdapter; @Inject private RequestMappingHandlerMapping handlerMapping; @Inject private SessionFactory sf; @Inject private ObjectMapper om; private MockHttpServletRequest request; private MockHttpServletResponse response; @Before @Transactional public void setUp() { request = new MockHttpServletRequest(); response = new MockHttpServletResponse(); Session sess = sf.getCurrentSession(); } @Test @Transactional public void testController() throws Exception { request.setRequestURI( "/uri/" ); //设置请求的URI Object handler = handlerMapping.getHandler( request ).getHandler(); //获取Handler对象(就是控制器类) handlerAdapter.handle( request, response, handler ); //转发给Handler处理,并获取响应 String contentType = response.getContentType(); String json = response.getContentAsString(); assertTrue( StringUtils.containsIgnoreCase( contentType, "json" ) ); assertTrue( StringUtils.containsIgnoreCase( contentType, "utf-8" ) ); } } |
常用问题
强制产生JSON格式的结果
配置 @RequestMapping( produces = "application/json" )
SpringMVC 设置 /* 过滤全部,导致JSP无法显示的问题
找不到控制器类的问题:No mapping found for HTTP request with URI
- 注意URL拦截的前置部分,如/admin,不要再控制器的映射路径中体现,例如地址/admin/user在控制器中直接配: /user
使用…
12 years ago
0
ExtJS知识集锦
常用代码片段
DOM的增删改
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
var myDiv1 = Ext.get( 'div1' ); //根据ID获取DOM元素 myDiv1.createChild( 'Child from a string' ); //创建要给子节点 myDiv1.createChild( '<div>Element from a string</div>' ); //创建一个子元素 myDiv1.createChild( { //使用对象配置方式添加子元素 tag : 'div', html : 'Child from a config object' } ); //添加多个子代元素 myDiv1.createChild( { tag : 'div', id : 'nestedDiv', style : 'border: 1px dashed; padding: 5px;', children : { tag : 'div', html : '...a nested div', style : 'color: #EE0000; border: 1px solid' } } ); //在最前面插入子元素 myDiv1.insertFirst( { tag : 'div', html : 'Child inserted as node 0 of myDiv1' } ); //在某个子元素之前插入 myDiv1.createChild( { tag : 'div', id : 'removeMeLater', html : 'Child inserted as node 2 of myDiv1' }, myDiv1.dom.childNodes[3] ); //删除一个元素 var myDiv1 = Ext.get( 'div1' ); myDiv1.remove(); |
组件导航
1 2 3 4 5 |
var me = currentBorderContainer; //根据Region在border布局中导航 var northChild = me.down( '*[region=north]' ); //遍历所有子组件 Ext.each( me.items.items, function( cmp ) {}); |
使用模板(Template和XTemplate)
使用模板可以很方便的创建复杂的DOM结构。模板中的占位符使用花括号{}包围,可以应用一个上下文对象以替换模板生成最终结果。
XTemplate支持循环、选择等基础程序结构,支持任意表达式的计算。可用于表达式的内置变量包括:
- out:模板结果添加到的输出数组对象
- values:当前上下文对象
- parent:使用…
16 years ago
0