随笔 - 6  文章 - 3  trackbacks - 0
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(3)

随笔分类

随笔档案

我的51博客,有空看看

搜索

  •  

最新评论

阅读排行榜

评论排行榜

昨天听到一个同事在说Eclipse老是反应好慢,常常出现内存不足的情况。
在网上查了一下关于这方法的东东,有的说在后面加参数,我原来试过,没有发现有很大的效果,不过在网上看到一则说在Eclipse中查看JVM的内存使用情况的,觉的挺有意思的,其实我另一个Eclipse3.2的开发环境没有设置任何的配置也可以查看同样的效果,我就是不明白那是怎么出来的,还害的我在菜单中找了好多都没有调用出来。按网上说的试着去设置了一下,成功了,看起来也不错。
方法如下:
1.在eclipse根目录下建立一个文件,文件名options,不要加后缀直接保存,文件内容org.eclipse.ui/perf/showHeapStatus=true
2.修改eclipse目录下的eclipse.ini文件,在开始添加如下内容:
-debug
options
-vm
javaw.exe
重新启动eclipse,就可以看到下方状态条多了JVM的信息

posted @ 2007-04-12 16:15 lansky07 阅读(2164) | 评论 (0)编辑 收藏

XWork配置详述

XWork配置文件是以“xwork”命名的.xml文件,它必需放到类路径(classPath)的根目录, Web应用一般放在classes目录中,它需要遵守DTD的规范(现在是xwork-1.0.dtd)。这个文件定义了我们的ActionInterceptorResult的配置和相互之间的映射。下面我们看看用户注册的完整XWork配置文件:

<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">

<xwork>

    <include file="webwork-default.xml"/> 

    <package name="example" extends="webwork-default">

       <action name="register" class="example.register.RegisterAction" >

           <result name="success" type="dispatcher">

              <param name="location">/register-result.jsp</param>

           </result>

           <interceptor-ref name="params"/>

       </action>  

       <action name="registersupport" class="example.register.RegisterActionSupport" >

           <result name="success" type="dispatcher">

              <param name="location">/register-result.jsp</param>

           </result>

           <result name="input" type="dispatcher">

              <param name="location">/registerSupport.jsp</param>

           </result>

           <interceptor-ref name="validationWorkflowStack"/>

       </action> 

    </package>

</xwork>

xwork.xml文件的标签元素

Xworkxwork配置文件的所有内容,都是定义在<xwork>标签中,它的直接子标签有<package><include>

Package我们的ActionInterceptorResult都是在此标签中定义。<package>标签有一个必需的属性“name”,它用来标识唯一的一个package。属性“extends”是可选的,它用来继承前面定义的一个或一个以上package配置信息,包括所有的interceptorinterceptor-stackaction的配置信息。注意,配置文件按文档的顺序,由上向下执行,因此,用“extends”引用的package必需在引用之前定义。属性“sbstract”是可选的,它用来设置package为抽象的package,它可以被继承同时它的Action配置信息在运行时将不可见。

属性namespace也是可选的,它用来分隔不同package定义的action,让这些action处于不同的命名空间(namespaces)。这样,我们不同的package可以有相同的action命名,因为可以通过命名空间来区分。如果不指定namespace,默认的是空字符串。命名空间也可以被用在安全控制方面,它可以根据不同的命名空间指定不同的访问权限。

是否必需

  

name

用来标识package的名称

extends

继承它所扩展的package配置信息

namespace

指定package的命名空间,默认是””

abstract

声明package是抽象的

 

Result-type用来定义输出结果类型的Class,它用简单的名-值对来定义。当然,我们自己写的输出结果类型也必需在这里定义。例如:

<result-type name="dispatcher" class="com.opensymphony.webwork.dispatcher.ServletDispatcherResult" default="true"/>default="true"表示如果在Actionresult中不指定result-type,就使用这个默认的result-type

Interceptors它是一个简单的<interceptors>  <interceptors/>标签,我们的interceptorinterceptor-stack都在此标签内定义。

Interceptor当然,就是用来定义我们的拦截器。它的定义非常简单,名-值对的形式。例如:<interceptor name="timer" class="com.opensymphony.xwork.interceptor.TimerInterceptor"/>。在action中,可以通过<interceptor-ref />来直接引用前面定义了的拦截器。

Interceptor-stack用来将上面定义的interceptor组织成堆栈的形式,这样我们就可以创建一组标准的interceptor,让它按照顺序执行。在我们的Action中直接引用这个interceptor堆栈就可以了,不用逐个interceptor去引用。

例如:

<interceptor-stack name="validationWorkflowStack">

               <interceptor-ref name="defaultStack"/>

                <interceptor-ref name="validation"/>

                <interceptor-ref name="workflow"/>

            </interceptor-stack>

Interceptor Param:我们的interceptor是在ActionConfig级别被实例化和存储的,也就是说一个Action引用的每个interceptor都会有相应的实例。这样,我们在定义和引用interceptor的时候都可以为它设置相应的参数值。例如:

<interceptor name="test" class="com.opensymphony.xwork.TestInterceptor">

    <param name="foo">expectedFoo</param>

</interceptor>

ActionInterceptor-stack中引用时也可以设置参数,例如:

<interceptor-ref name="test">

    <param name="expectedFoo">expectedFoo</param>

</interceptor-ref>

注意:在Action引用的时候,如果引用的是Interceptor-stack,则不允许设置参数,否则会报错。

 

Global-results它允许我们定义全局的输出结果(global result),比如登陆页面、操作错误处理页面。只要继承它所在的package,这些输出结果都是可见的。

例如:

<global-results>

           <result name="login" type="dispatcher">

              <param name="location">/login.jsp</param>

           </result>

           <result name="error" type="dispatcher">

              <param name="location">/error.jsp</param>

           </result>

       </global-results>

如果我们的Action执行完返回“login”,它将调用上面的这个输出结果,将输出派遣到根目录下的login.jsp页面。

Action用来配置Action的名称(name)和它对应的Class。我们将通过这个Action的名称和它所在packagenamespace去配置文件中取得这个Action的配置信息。它可以通过<param>来设置参数,Action在执行的时候会取得配置文件里设置的参数(通过拦截器StaticParametersInterceptor)。

Action可以配置一个或多个输出结果(result)。一个输出结果的名称,对应于Action执行完成返回的字符串。<result>标签的type属性,对应我们前面定义过的result-type,说明reslut的类型。例如:

<action name="register" class="example.register.RegisterAction" >

           <result name="success" type="dispatcher">

              <param name="location">/register-result.jsp</param>

           </result>

           <interceptor-ref name="params"/>

       </action>

当然,我们的Action用到的拦截器也是在这里配置的,通过<interceptor-ref>标签,属性“name”的值,对应前面定义的interceptorinterceptor-stack如果Action中没有用<interceptor-ref>标签指定拦截器,它将使用默认的<default-interceptor-ref>标签定义的拦截器。

Includexwork..xml文件可以被分成好几个不同的文件,xwork..xml通过<include>标签引用被包含的文件,例如:<include file="webwork-default.xml"/>。被包含的文件必需是package标签里的内容,我们看看<include>标签在配置文件里的位置就知道了。如果要继承被包含文件的package,我们必需将<include>标签放在其上面,因为配置文件是按照由上而下的顺序解析的。
---转贴

posted @ 2007-04-11 19:13 lansky07 阅读(497) | 评论 (0)编辑 收藏

今天在做通讯录的功能模块,因为要用数展现,在网上搜了一下有关于这方面的资料,现转贴来看看。

dtree动态树+Javascript右键菜单(一)
1、从网上下载dtree控件。(好多地方都有的哦:P)
2、在Jbuilder中新建Web应用,命名为TreeLearing
3、解压缩dtree.rar包。
    把dtree目录拷贝至TreeLearing应用中。
    dtree目录下包括这些文件:example01.html 、 dtree.js 、 api.html 、 dtree.css 和img目录
    注意:除了api.html之外,其它的文件都是必须拷贝的。只有这个api.html是对dtree控件的函数介绍。
4、复制example01.html,并把粘贴后的文件重命名为Tree.jsp
:)  (保留原来的文件,以备参考是个好习惯哦~~)
注意dtree目录下的文件结构不要改变,否则树就不会正常显示
 
5、在Web应用中指定首页为Tree.jsp页面。
6、Tree.jsp中的代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
 <title>Destroydrop &raquo; Javascripts &raquo; Tree</title>
 <link rel="StyleSheet" href="dtree.css" type="text/css" />
 <script type="text/javascript" src="dtree.js"></script>
</head>
<body>
<h1><a href="/">Destroydrop</a> &raquo; <a href="/javascripts/">Javascripts</a> &raquo; <a href="/javascripts/tree/">Tree</a></h1>
<h2>Example</h2>
<div class="dtree">
 <p><a href="javascript: d.openAll();">open all</a> | <a href="javascript: d.closeAll();">close all</a></p>
 <script type="text/javascript">
  <!--
  d = new dTree('d');
  d.add(0,-1,'My example tree');
  d.add(1,0,'Node 1','example01.html');
  d.add(2,0,'Node 2','example01.html');
  d.add(3,1,'Node 1.1','example01.html');
  d.add(4,0,'Node 3','example01.html');
  d.add(5,3,'Node 1.1.1','example01.html');
  d.add(6,5,'Node 1.1.1.1','example01.html');
  d.add(7,0,'Node 4','example01.html');
  d.add(8,1,'Node 1.2','example01.html');
  d.add(9,0,'My Pictures','example01.html','Pictures I\'ve taken over the years','','','img/imgfolder.gif');
  d.add(10,9,'The trip to Iceland','example01.html','Pictures of Gullfoss and Geysir');
  d.add(11,9,'Mom\'s birthday','example01.html');
  d.add(12,0,'Recycle Bin','example01.html','','','img/trash.gif');
  document.write(d);
  //-->
 </script>
</div>
<p><a href="mailto:drop@destroydrop.com">&copy;2002-2003 Geir Landr&ouml;</a></p>
</body>
</html>
 
7、删除紫红色部分的代码,因为不需要哦。
8、注意看绿色和蓝色部分的代码,这才是真正为树添加节点的部分。
    d.add(0,-1,'My example tree');
    这一句为树添加了一个根节点,显示名称为'My example tree'
    d.add(1,0,'Node 1','example01.html');
    这一句在树的根节点下面添加了一个子节点。(d.add()方法的参数具体含义可参见api.html文件)
    常用的:
    第一个参数,表示当前节点的ID
    第二个参数,表示当前节点的父节点的ID
    第三个参数,节点要显示的文字
    第四个参数,点击该节点的超链接(注意也可以是某个servlet或是struts应用中的某个.do请求)
    第五个参数,鼠标移至该节点时显示的文字
    第六个参数,指定点击该节点时在哪个桢中打开超链接
    ……
9、运行应用程序。可以看到一棵漂亮的树。
原贴地址http://minifishpingping.spaces.live.com/blog/cns!167be6972d4b3ac!139.entry

Dtree所引用的css
一:dtree.css

.dtree {//定义目录树节点的字体,字号,颜色

font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;

font-size: 12px;

color: #006600;

white-space: nowrap;

}

.dtree img {//定义选用节点图标的样式,位置

border: 0px;

vertical-align: middle;

}

.dtree a {//

color: #006600;

text-decoration: none;

}

.dtree a.node, .dtree a.nodeSel {

white-space: nowrap;//表格随着文字自动伸展(如果未设置TD宽度,则noWrap属性是起作用的;如果设置了TD宽度,则noWrap属性是不起作用的。)

padding: 0px 0px 0px 0px;

}

.dtree a.node:hover, .dtree a.nodeSel:hover {

color: #006600;

text-decoration: none;

}

.dtree a.nodeSel {//节点选中后的节点背景颜色

background-color: #c0d2ec;

}

.dtree .clip {

overflow: hidden;

}


二:tree.css

body {SCROLLBAR-FACE-COLOR:#D2FFD2;

SCROLLBAR-HIGHLIGHT-COLOR: #8AA583;

SCROLLBAR-SHADOW-COLOR: #8AA583;

SCROLLBAR-3DLIGHT-COLOR: #ffffff;

SCROLLBAR-ARROW-COLOR: #8AA583;

SCROLLBAR-TRACK-COLOR: #E1FFE1;

SCROLLBAR-DARKSHADOW-COLOR: #ffffff;

       background-attachment: fixed;

//scroll :  背景图像是随对象内容滚动

//fixed :  背景图像固定

       background-repeat: no-repeat;

//background-repeat : repeat | no-repeat | repeat-x | repeat-y

//repeat :  背景图像在纵向和横向上平铺

//no-repeat :  背景图像不平铺

//repeat-x :  背景图像在横向上平铺

//repeat-y :  背景图像在纵向平铺

       background-color: EFF7F7;

}

Dtree目录树的总结
一:函数1:页面中tree.add(id,pid,name,url,title,target,icon,iconOpen,open);参数说明:id          :节点自身的idpid        :节点的父节点的idname     :节点显示在页面上的名称url         :节点的链接地址title       :鼠标放在节点上所出现的提示信息target    :节点链接所打开的目标frame(如框架目标mainFrame或是_blank,_self之类)icon       :节点关闭时的显示图片的路径iconOpen:节点打开时的显示图片的路径open     :布尔型,节点是否打开(默认为false)注:open项:顶级节点一般采用true,即pid是-1的节点2:dtree.js文件中约87-113行是一些默认图片的路径,注意要指对。二:页面中的书写1:默认值的书写规则(从左至右,依次省略)即 tree.add(id,pid,name,url);后面5个参数可以省略2:有间隔时的默认值(如存在第6个参数,但第5个参数想用默认值)即 tree.add(id,pid,name,url,"",target);必须这样写其他 tree.add(id,pid,name,url,"","","","",true);3:样式表(1):可以将dtree.css中的样式附加到你的应用中的主css中,如a.css(2):也可以同时引用dtree.css与a.css两个文件,但前提条件是两个css文件中不能有重复的样式<link href="/jingjindatabase/pub/css/a.css" rel="stylesheet" type="text/css" />
<link href="/jingjindatabase/pub/css/dtree.css" rel="stylesheet" type="text/css" />
4:页面代码书写的位置是:一般写在表格的td之中<script type="text/javascript" src="/myMobanGis/pub/js/dtree.js"></script>
<script type="text/javascript">
tree = new dTree('tree');
tree.add("1","-1","京津","","","","","",true);
tree.add("11","1","A","","","","","",true);
tree.add("110","11","A-1","content.jsp?moduleName=XXX","","mainFrame");
tree.add("111","11","A-2","javascript:void(0)","","链接在哪里显示");
tree.add("112","11","A-3","javascript:void(0)","","mainFrame");
tree.add("113","11","A-4","/.jsp","","mainFrame");
tree.add("114","11","A-5","/.jsp","","mainFrame");
tree.add("115","11","A-6","/.jsp","","mainFrame");

tree.add("12","1","B","","","","","",true);
tree.add("121","12","B-1","javascript:调用本页内的js函数","","mainFrame");
tree.add("122","12","B-2");tree.add("13","1","C","","","","","",true);
tree.add("131","13","C-1","javascript:void(0)","","mainFrame");
tree.add("132","13","C-2","javascript:void(0)","","mainFrame");
tree.add("133","13","C-3","javascript:void(0)","","mainFrame");tree.add("14","1","D","","","","","",true);
tree.add("141","14","D-1","javascript:void(0)","","mainFrame");
document.write(tree);
</script>
说明:这是静态的代码,动态的可用循环加入。
三:css文件的注解

1:dtree.css

.dtree {//定义目录树节点的字体,字号,颜色
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #006600;
white-space: nowrap;
}
.dtree img {//定义选用节点图标的样式,位置
border: 0px;
vertical-align: middle;
}
.dtree a {//
color: #006600;
text-decoration: none;
}
.dtree a.node, .dtree a.nodeSel {
white-space: nowrap;
padding: 0px 0px 0px 0px;
}
.dtree a.node:hover, .dtree a.nodeSel:hover {
color: #006600;
text-decoration: none;
}
.dtree a.nodeSel {
background-color: #c0d2ec;
}
.dtree .clip {
overflow: hidden;
}

原贴地址http://blog.sina.com.cn/u/4ae9618f010006y3

posted @ 2007-04-11 17:39 lansky07 阅读(2630) | 评论 (3)编辑 收藏
javascript;<c:out>两种方法去除转换字符
今天在做页面查看功能是,编辑页面保存利用查看功能查看,发现一些<p>,&it,',这些里面的转意字符都出现在查看页面中了,有两种方法可以去除这些不必要显视的内容:
程序源代码为:
<td>
           <table border="0" cellspacing="0" width="100%" bordercolordark="#FFFFFF" bordercolorlight="#000000" bordercolor="#333300" cellpadding="0">
            <tr>
             <td id="goodsRemark">
                 <input type="hidden" name="remark" value="<c:out value="${goodForm.goodsRemark}"/>" >
              <!--  <c:out value="${goodForm.goodsRemark}" escapeXml="false"></c:out> -->
             </td>
            </tr>
           </table>
          </td>
         </tr>
        </table>
        <script language="javascript">
           document.all.goodsRemark.innerHTML=document.all.remark.value;
        </script>
</td>

以上两种颜色是两种方法实现,红色的JSTL标签简便些,第二种方法利用javascript同样可以达到目的。
posted @ 2007-04-06 15:28 lansky07 阅读(1165) | 评论 (0)编辑 收藏
//用javascript去除字符串左右空格,包括全角和半角
String.prototype.trim = function() { //其中表示为:对象.属性.方法=函数方法
var strTrim = this.replace(/(^\s*)|(\s*$)/g, "");
strTrim = strTrim.replace(/^[\s \t]+|[\s \t]+$/, "");
return strTrim;
}

在页面处理时用到,上面代码用到正则表达式,我对正则表达式还不清楚,有空把这方面知识给补上去。

posted @ 2007-04-05 17:11 lansky07 阅读(1338) | 评论 (0)编辑 收藏
关于<input type="hidden">:
定义
传输关于客户/服务器交互的状态信息,不显示,用于提交隐藏的信息

注释
这种输入类型用户无法控制,但是却在提交表单时发送 value 属性的值,此元素不需要关闭标签。
INPUT type=hidden 元素不会显示在文档里,所以用户也无法操作该元素。该元素通常用来传输一些客户端到服务器的状态信息。虽然此元素不会显示出来,但是用户可以通过查看 HTML 的源代码看到该元素属性的值,所以请注意,不要用该元素传递敏感信息,比如密码什么的。

此种HTML标记在我们实际开发中用到很多,并且用处比较大,只是在页面中不显视,使得比别的元素稍难理解些。
posted @ 2007-04-05 17:05 lansky07 阅读(2654) | 评论 (0)编辑 收藏
仅列出标题