首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts2 sx:tree的施用

2012-10-08 
struts2 sx:tree的使用1.节点对象package com.oohla.uni.tag.ui.actionimport java.util.ArrayListimpor

struts2 sx:tree的使用

1.节点对象

package com.oohla.uni.tag.ui.action;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.oohla.uni.database.biz.ContactGroup;
import com.oohla.uni.sysadmin.web.AppConfig;

public class ContactGroupNode extends ContactGroup{
?
?private static final Log log = LogFactory.getLog(ContactGroupNode.class);
?
?private ContactGroup contactGroup;
?
?public ContactGroupNode(ContactGroup contactGroup){
??this.contactGroup = contactGroup;
?}
?
?public int getId() {
??return contactGroup.getGroupId();
?}

?public String getName() {
??return contactGroup.getGroupName();
?}
?
?public List<ContactGroupNode> getChildren(){
??log.info("getChildren");
??try {
???List<ContactGroup> contactGroups = AppConfig.getInstance().getContactBiz().findContactGroupsByRefGroupId(contactGroup.getGroupId());
???if(contactGroups != null && contactGroups.size() > 0){
????List<ContactGroupNode> nodes = new ArrayList<ContactGroupNode>();
????for (int i = 0;i < contactGroups.size();i ++) {
?????ContactGroupNode contactGroupNode = new ContactGroupNode(contactGroups.get(i));
?????nodes.add(contactGroupNode);
????}
????return nodes;
???}
??} catch (Exception e) {
???// TODO Auto-generated catch block
???e.printStackTrace();
??}
??return null;
?}

}

?

2.action

package com.oohla.uni.tag.ui.action;

import java.util.List;

import com.oohla.uni.database.biz.ContactBiz;
import com.oohla.uni.database.biz.ContactGroup;
import com.opensymphony.xwork2.ActionSupport;

public class TreeAction extends ActionSupport{
?
?private ContactBiz contactBiz;
?
?private ContactGroupNode contactGroupNode;
?
?public void setContactBiz(ContactBiz contactBiz) {
??this.contactBiz = contactBiz;
?}
?
?public ContactGroupNode getContactGroupNode() {
??return contactGroupNode;
?}

?@Override
?public String execute() throws Exception {
??List<ContactGroup> contactGroups = contactBiz.queryPrivateContactsAndGroups(140);
??contactGroupNode = new ContactGroupNode(contactGroups.get(0));
??return "tree";
?}
?
}

?

3.配置文件

<package name="tagPackage" namespace="/tags" extends="struts-default">?
??????
??????? <action name="tree" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
<html>
<head>
<sx:head />

<script type="text/javascript">
??? //展开
??? function expand(){
??var nodes =dojo.widget.manager.getWidgetsByType('struts:StrutsTreeNode');
??for( var i=0; i < nodes.length; i++){
????? nodes[i].expand();
??}
?}

?function collapse(){
??var nodes =dojo.widget.manager.getWidgetsByType('struts:StrutsTreeNode');
??for( var i=0; i < nodes.length; i++){
????? nodes[i].collapse();
??}
??? }

??? function nodeClick(obj){
??alert(obj);
??? }

??? dojo.addOnLoad(function() {???????????????
??????? var t = dojo.widget.byId('group');
??????? dojo.event.topic.subscribe(t.eventNames.expand, treeNodeExpanded);???????????????
??????? dojo.event.topic.subscribe(t.eventNames.collapse, treeNodeCollapsed);
???????
??????? var s = t.selector;???????????????
??????? dojo.event.connect(s, 'select', 'treeNodeSelected');
??? });

??? //选择节点触发事件
??? function treeNodeSelected(arg) {
??????? alert(arg.source.title + ' selected');
??? }
??? //展开节点触发事件
??? function treeNodeExpanded(arg) {
??????? alert(arg.source.title + ' expanded');
??? }
??? //闭合节点触发事件
??? function treeNodeCollapsed(arg) {
??????? alert(arg.source.title + ' collapsed');
??? }

</script>
</head>
<body>
<a href="#" style="font-size:12px" onclick="expand();">展开</a> <a href="#" style="font-size:12px" onclick="collapse();">闭合</a>
<sx:tree id="group" rootNode="contactGroupNode" nodeTitleProperty="name"
?nodeIdProperty="id" childCollectionProperty="children" onclick="nodeClick(this);"/>
</body>
</html>

?

?

?

热点排行