当前位置: 代码迷 >> JavaScript >> extjs struts2 convention 诠注
  详细解决方案

extjs struts2 convention 诠注

热度:81   发布时间:2012-09-08 10:48:07.0
extjs struts2 convention 注解

?

struts2-convention.plugin 插件与extjs 整合.

?

? ?注:..其实这种struts2 的注解方式也可以与jquery,ajax ?结合...

在 www.shoujicaipiao.com.cn 这个网站中就用到了jquery+struts2-convention-plugin

?

技术结构:
struts2+spring+jpa+extjs+mysql

?

包结构:


?

运行界面:

?


?

web.xml 省略.

?

struts.xml

?

?

<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="true" /><!--  开启动态方法 -->
    <constant name="struts.i18n.encoding" value="gbk"></constant>
    <constant name="struts.devMode" value="false" /><!-- 开启开发者模式 -->
    <!-- 不用dojo的及struts2复杂标签样式的就把主题设置为simple,这样可以不加载多余的模板。 -->
    <constant name="struts.ui.theme" value="simple" />
    <constant name="struts.custom.i18n.resources" value="messageResource" />
    <!-- 确定搜索包的路径。只要是结尾为action的包都要搜索 -->
    <constant name="struts.convention.package.locators" value="action" />
    <!-- 一个action名字的获取。比如为HelloWorldAction。按照配置,actionName为hello_world -->
    <constant name="struts.convention.action.suffix" value="Action" />
    <constant name="struts.convention.action.mapAllMatches" value="true" />
    <constant name="struts.convention.action.name.separator" value="-" />
    <!-- 设置默认的父包,一般我们都设置一个default包继承自struts-default -->
    <constant name="struts.convention.default.parent.package" value="rest-default" />
    <!-- Add packages here -->
</struts>

?
applicationContext.xml

?

?

<context:component-scan base-package="com.chenxi"/>
	<context:property-placeholder location="classpath:spring.properties"/>
	<!-- 数据源,使用 src 下的 c3p0.properties 配置 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"/>
	<!-- JPA实体管理工厂配置 --> 
	<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="dataSource" ref="dataSource"/>
		<property name="jpaVendorAdapter">
			<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
				<property name="showSql" value="${showSql}"/>
				<property name="database" value="${database}"/>
				<property name="databasePlatform" value="${dialect}"/>
			</bean>
		</property>	
	</bean>
	<!-- 实体管理器配置 -->
	<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
		<property name="entityManagerFactory" ref="entityManagerFactory"/>
	</bean>
	<!-- 以注解驱动方式配置事务 -->
	<tx:annotation-driven transaction-manager="transactionManager"/>

?

ManagerAction

?

?

@Component
@Scope("prototype")
@ParentPackage("json-default")
@Results({
	@Result(name="success",type="json",params={"managerList","managerList"})
})
public class ManagerAction extends ActionSupport{
	private static final long serialVersionUID = 1L;

	private int limit;
	private int start;
	private int totalProperty;
	private List<Cardcategory> managerList;
	private int id;
	
	@Autowired
	private ManagerService managerService;
	
	public String getManager(){
		try {
			start = start > 1 ? start/limit +1 : start;
			managerList = managerService.getM(start,limit);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "success";
	}
}
?

?

manager.jsp

?

?

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<base href="<%=basePath%>">
	</head>
	<script type="text/javascript" src="js/manager.js" charset="GBK"</script>
	<body>
		<div id="sadf"></div>
	</body>
</html>

?

?manager.js--简单的grid实现

?

?

var store = new Ext.data.Store( {
	proxy : new Ext.data.HttpProxy( {
		url : 'manager/0/getManager'
	}),
	reader : new Ext.data.JsonReader( {
		root : 'managerList',
		totalProperty : 'totalProperty',
		id : 'id'
	}, [ {
		name : 'categoryname',
		mapping : 'categoryname',
		type : 'string'
	}, {
		name : 'cardcost',
		mapping : 'cardcost',
		type : 'int'
	}, {
		name : 'salefetchmethod',
		mapping : 'salefetchmethod',
		type : 'string'
	}, {
		name : 'salefetchmoney',
		mapping : 'salefetchmoney',
		type : 'int'
	}, {
		name : 'fundfetchmethod',
		mapping : 'fundfetchmethod',
		type : 'string'
	}, {
		name : 'fundfetchmoney',
		mapping : 'fundfetchmoney',
		type : 'int'
	} ])
});
store.load( {
	params : {
		start : 0,
		limit : 15
	}
});

var cm = new Ext.grid.ColumnModel( [ {
	header : '卡类型名称',
	dataIndex : 'categoryname',
	sortable : true,
	width : 100
}, {
	header : '卡的基本费用',
	dataIndex : 'cardcost',
	sortable : true,
	width : 100
}, {
	header : '售卡提成方式',
	dataIndex : 'salefetchmethod',
	sortable : true,
	width : 100
}, {
	header : '售卡提成金额',
	dataIndex : 'salefetchmoney',
	sortable : true,
	width : 100
}, {
	header : '充值提成方式',
	dataIndex : 'fundfetchmethod',
	sortable : true,
	width : 100
}, {
	header : '充值提成金额',
	dataIndex : 'fundfetchmoney',
	sortable : true,
	width : 100
} ]);

cm.defaultSortable = true;
var grid = new Ext.grid.GridPanel( {
	border : false,
	store : store,
	loadMask : true,
	cm : cm,
	 region:'center',
	 autoExpandColumn:true,
	 stripeRows:true,
	 
	tbar : new Ext.PagingToolbar( {
		store : store,
		pageSize : 15,
		displayInfo : true,
		displayMsg : "本页显示第{0}条到第{1}条的记录,一共{2}条",
		emptyMsg : "没有记录"
	})
});

Ext.onReady(function() {
	Ext.QuickTips.init();
	grid.render(new Ext.getDom("sadf"));
});

?

?jquery+struts2-convention..

?

?

?

  相关解决方案