王朝网络
分享
 
 
 

WebLogic树形结构的实现

王朝other·作者佚名  2006-06-09
宽屏版  字体: |||超大  

WebLogic8.1树形结构的实现

草木瓜

2006-6-6

一、序

本文是使用WebLogic的<netui:tree>自带控件,如果对其比较陌生可以察看

E:\bea\weblogic81\samples\workshop\SamplesApp\WebApp\tagSamples\netui\tree

E:\bea\weblogic81\samples\workshop\SamplesApp\WebApp\tagSamples\netui\tree_dynamic

WebLogic自带的两个例子。

关于静态的树形结构相对简单,不在这里详细说明。

二、自定义的树形结构

1.环境目录

---------------------------------

Test\TestWeb\index.jsp Test为应用程序名,TestWeb为Web名

2.创建页面流

---------------------------------

在TestWeb下新建页面流tree。系统会自动生成以下文件,文件夹:

Test\TestWeb\tree

Test\TestWeb\tree\index.jsp

Test\TestWeb\tree\TreeController.jpf

3.准备TreeView相关页面文件

---------------------------------

这里使用frame框架进行演示,左边显示树形结点,右边显示对应内容。所以还要建立两个文件。

tree.jsp作为树形结点页面,content.jsp作为内容页面。

Test\TestWeb\tree\tree.jsp

Test\TestWeb\tree\content.jsp

我们把index.jsp就作为框架容器。代码如下:

<netui:html>

<head>

<title>

Web Frame

</title>

</head>

<frameset cols="20%,*">

<frame src="tree.jsp" name="fraTree" >

<frame src="content.jsp" name="fraContent" >

</frameset>

</netui:html>

4.编辑页面流文件TreeController.jpf

---------------------------------

tree.jsp,content.jsp内容我们暂时不管,先编辑TreeController.jpf页面流文件,全代码如下:

package tree;

/**

* @jpf:controller

* @jpf:view-properties view-properties::

* <!-- 此数据是自动生成的。 不推荐手工编辑此区域。 -->

* <view-properties>

* <pageflow-object id="pageflow:/tree/TreeController.jpf"/>

* <pageflow-object id="action:treeState.do">

* <property value="180" name="x"/>

* <property value="40" name="y"/>

* </pageflow-object>

* <pageflow-object id="action:begin.do">

* <property value="80" name="x"/>

* <property value="100" name="y"/>

* </pageflow-object>

* <pageflow-object id="action-call:@page:tree.jsp@#@action:treeState.do@">

* <property value="96,120,120,144" name="elbowsX"/>

* <property value="31,31,31,31" name="elbowsY"/>

* <property value="East_1" name="fromPort"/>

* <property value="West_1" name="toPort"/>

* </pageflow-object>

* <pageflow-object id="page:tree.jsp">

* <property value="60" name="x"/>

* <property value="40" name="y"/>

* </pageflow-object>

* <pageflow-object id="page:index.jsp">

* <property value="240" name="x"/>

* <property value="100" name="y"/>

* </pageflow-object>

* <pageflow-object id="page:content.jsp">

* <property value="120" name="x"/>

* <property value="100" name="y"/>

* </pageflow-object>

* <pageflow-object id="forward:path#tree#tree.jsp#@action:treeState.do@">

* <property value="144,120,120,96" name="elbowsX"/>

* <property value="31,31,31,31" name="elbowsY"/>

* <property value="West_1" name="fromPort"/>

* <property value="East_1" name="toPort"/>

* <property value="tree" name="label"/>

* </pageflow-object>

* <pageflow-object id="forward:path#success#index.jsp#@action:begin.do@">

* <property value="116,160,160,204" name="elbowsX"/>

* <property value="91,91,91,91" name="elbowsY"/>

* <property value="East_1" name="fromPort"/>

* <property value="West_1" name="toPort"/>

* <property value="success" name="label"/>

* </pageflow-object>

* </view-properties>

* ::

*/

//以上一堆注释代码,不必理会

public class TreeController extends com.bea.wlw.netui.pageflow.PageFlowController

{

//定义树形根结点

public com.bea.wlw.netui.tags.html.TreeNode liweinode = null;

//页面流加载时运行代码

public void onCreate() throws Exception

{

int i=10;

//实例化树形结点

//第一个参数:结点图标

//第二个参数:结点标签

//第三个参数:一般为null,具体还没搞懂

//第四个参数:结点的点击动作

//第五个参数:作用的页面,即在index.jsp定义的内容框架名fraContent

//第六个参数:展开还是合并

liweinode=new com.bea.wlw.netui.tags.html.TreeNode(

"folder_closed.gif",

"root",

null,

"content.jsp",

"fraContent",

true);

com.bea.wlw.netui.tags.html.TreeNode treenode[]=new com.bea.wlw.netui.tags.html.TreeNode[i];

for(i=0;i<10;i++)

{

treenode[i] = new com.bea.wlw.netui.tags.html.TreeNode(

"folder_closed.gif",

"test"+i,

null,

"content.jsp?sendvalue="+i,

"fraContent",

true);

liweinode.addChild(treenode[i]);

}

}

/**

* Handles the state of the tree when a a link is clicked.

*

* @jpf:action

* @jpf:forward name="tree" path="tree.jsp"

*/

//点击结点结的动作处理,要 <netui:tree中的Action一致。

public com.bea.wlw.netui.pageflow.Forward treeState()

{

String nodeSel = null;

String nodeExpanded = null;

nodeSel = getRequest().getParameter(com.bea.wlw.netui.tags.html.TreeNode.SELECTED_NODE);

nodeExpanded = getRequest().getParameter(com.bea.wlw.netui.tags.html.TreeNode.EXPAND_NODE);

if (nodeExpanded != null)

{

com.bea.wlw.netui.tags.html.TreeNode node = liweinode.findNode(nodeExpanded);

if (node != null)

{

node.setExpanded(!node.isExpanded());

}

return new com.bea.wlw.netui.pageflow.Forward("tree");

}

return new com.bea.wlw.netui.pageflow.Forward(nodeSel);

}

/**

* 此方法代表进入页面流的入口

* @jpf:action

* @jpf:forward name="success" path="index.jsp"

*/

protected com.bea.wlw.netui.pageflow.Forward begin()

{

return new com.bea.wlw.netui.pageflow.Forward("success");

}

}

5.编辑页面tree.jsp,content.jsp

---------------------------------

tree.jsp内容如下,tree对应上面定义的public liweinode,格式必须如此。action即为上面定义的

public com.bea.wlw.netui.pageflow.Forward treeState()方法。

<body>

<netui:tree tree="{pageFlow.liweinode}" action="treeState"></netui:tree>

</body>

content.jsp内容如下:

<body>

<p>

<%=request.getParameter("sendvalue")%>

</p>

</body>

6.运行

---------------------------------

运行会发现左边树形结构是一堆红x,不过点击对应结点,功能倒是没问题。不要紧,下面就解决红x的

问题。这是由于<netui:tree>中未指定imageRoot。

将E:\bea\weblogic81\samples\workshop\SamplesApp\WebApp\tagSamples\netui\tree下

treeImages复制到Test\TestWeb\tree下。并修改tree.jsp。这时

<netui:tree tree="{pageFlow.liweinode}" action="treeState" imageRoot="treeImages"></netui:tree>

再运行会发现一切OK,不会很快就会感觉到那些图片实在是太难看了。我这里用的是.net的图片,下载的

WebControl里面有。把这些好的图片复制到treeImages下,更改代码为:

<netui:tree tree="{pageFlow.liweinode}" action="treeState" imageRoot="treeImages" imageHandleRightMiddle="Tplus.gif" imageHandleDownMiddle="Tminus.gif" imageHandleRightLast="Lplus.gif" imageHandleDownLast="Lminus.gif" imageLineVertical="i.gif" imageLineLast="L.gif" imageLineMiddle="T.gif" />

运行一切OK!

三、从Xml文件中获取树形结构

E:\bea\weblogic81\samples\workshop\SamplesApp\WebApp\tagSamples\netui\tree_dynamic这个例子就

是,有了自定义树形的详细解释,应用也不成问题。

四、郁闷的话

WebLogic8.1的帮助真不敢恭维,不全不说,中文版的居然还有乱码,真晕!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有