发表于: java/j2ee | 作者: | 日期: 2008/3/29 12:03

trim()
trim()会去掉前导空格和尾部空格。

subString(int beginIndex, int endIndex)
返回子串。
子串从指定的 beginIndex 处开始,一直到索引 endIndex – 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。
示例:
“thoughtlab”.substring(0 ,7) returns “thought”
是截取从0索引到7-1 = 6 处的字符串。

getBytes()
使用平台默认的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。
当此字符串不能在默认的字符集中解码时,该方法无指定的行为。

getBytes(String charsetName)
使用指定的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。
当此字符串不能在给定的字符集中解码时,该方法无指定的行为。

String replaceFirst(String regex, String replacement)
使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的第一个子字符串。
参数regex是一个 regular-expression的匹配模式而不是一个简单的String,对一些特殊的字符需要进行转义处理才能正确使用(下同)。

String str1 = “aaa.bbb.ccc.ddd”;
String str2 = str1.replaceFirst(“\\.”,”+”);
System.out.println(str2);

String replaceAll(String regex, String replacement)
使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的每个子字符串。

String str1 = “aaa.bbb.ccc.ddd”;
String str2 = str1.replaceAll(“\\.”,”+”);
System.out.println(str2);

String[] split(String regex, int limit)
根据匹配给定的正则表达式来拆分此字符串。
此方法返回的数组包含由regex分割的子字符串,数组中的子字符串按它们在此字符串中的顺序排列。如果regex表达式不匹配字符串的任何部分,则结果数组只具有一个元素,即此字符串本身。

String str = “aaa.bbb.ccc.ddd”;
String[] strs = str.split(“\\.”,0);
for (int i = 0; i < strs.length; i++) { System.out.println(strs[i]); }

参数limit 参数控制模式应用的次数,因此影响结果数组的长度。
如果该限制 n 大于 0,则模式将被最多应用 n – 1 次,数组的长度将不会大于 n,而且数组的最后项将包含超出最后匹配的定界符的所有输入。
如果 n 为非正,则模式将被应用尽可能多的次数,而且数组可以是任意长度。
如果 n 为零,则模式将被应用尽可能多的次数,数组可有任何长度,并且结尾空字符串将被丢弃。
例如,字符串 “boo:and:foo” 使用这些参数可生成下列结果:
Regex Limit 结果
: 2 { “boo”, “and:foo” }
: 5 { “boo”, “and”, “foo” }
: -2 { “boo”, “and”, “foo” }
o 5 { “b”, “”, “:and:f”, “”, “” }
o -2 { “b”, “”, “:and:f”, “”, “” }
o 0 { “b”, “”, “:and:f” }

split(String regex)
根据给定的正则表达式的匹配来拆分此字符串。
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,结果数组中不包括结尾空字符串。

indexOf()
返回第一次出现的指定子字符串在此字符串中的索引。

使用替换和分割方法时,如果想在串中使用”\”字符,则也需要转义.首先要表达”aaaa\bbbb”这个串就应该用”aaaa\\bbbb”,如果要分隔就应该这样才能得到正确结果:
String[] aa = “aaa\\bbb\\bccc”.split(“\\\\”);

评论关闭
发表于: DB/ES | 作者: | 日期: 2008/3/28 05:03

CHAR(size)
用于描述定长的字符型数据。
每一笔数据的长度都相同(不做长度的补满空白)。默认长度为一个字节,最大长度为2000字节。需要注意两个字节只能存储一个简体中文汉字。 More …

评论关闭
发表于: java/j2ee | 作者: | 日期: 2008/3/27 11:03

导航类

Ctrl+E
快速显示当前Editor的下拉列表(如果当前页面没有显示的用黑体表示)

Ctrl+Shift+E
显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)

Alt+←
前一个编辑的页面

Alt+→
下一个编辑的页面

Ctrl+Q
定位到最后编辑的地方

Ctrl+L
定位在某行

F3
定位到声明或定义的地方
使用Ctrl+左键也能达到同样的效果。

Ctrl+Shift+P
定位到对应的匹配符:{}、()
从前面定位后面时,光标要在匹配符里面,后面到前面,则反之

Ctrl+O
快速显示OutLine

Ctrl+T
快速显示当前类的继承结构

Ctrl+W
关闭当前Editor

Ctrl+Shift+F4
关闭所有打开的Editer

Ctrl+M
切换窗口的大小

Ctrl+/
(小键盘) 按默认要求折叠当前类中的所有代码

Ctrl+×
(小键盘) 展开当前类中的所有代码

编辑类

Ctrl+1
快速修复

Alt+/
代码助手完成一些代码的插入

Ctrl+D
删除当前行

Ctrl+/
在代码窗口中是这种//~注释。

Ctrl+Shift+/
在代码窗口中是这种/*~*/注释,在JSP文件窗口中是这种<%-- ~--%>。

Ctrl+Shift+M
(先把光标放在需导入包的类名上) 作用是加Import语句。

Ctrl+Shift+O
作用是缺少的Import语句被加入,多余的Import语句被删除。

Ctrl+Shift+F
格式化文件Format Document。

Ctrl+Alt+↓
复制当前行到下一行(复制增加)

Ctrl+Alt+↑
复制当前行到上一行(复制增加)

Alt+↓
当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)

Alt+↑
当前行和上面一行交互位置(同上)

Shift+Enter
在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)

Shift+Ctrl+Enter
在当前行插入空行(原理同上条)

Ctrl+Shift+X
把当前选中的文本全部变味小写

Ctrl+Shift+Y
把当前选中的文本全部变为小写

Ctrl+S
保存当前文件。

Ctrl+Shift+S
保存所有未保存的文件。

Alt+Enter
显示当前选择资源(工程,or 文件 or文件)的属性

查找类

Ctrl+F
当前编辑窗口查找

Ctrl+H
功能强悍的全文查找

Ctrl+K
参照选中的Word快速定位到下一个

Ctrl+J
正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在status line中显示没有找到)

Ctrl+Shift+J
反向增量查找(和上条相同,只不过是从后往前查)

Alt+Shift+O
高亮显示与选中文本相同的字符串。

调试类

F5
单步调试进入函数内部。

F6
单步调试不进入函数内部。

F7
由函数内部返回到调用处。

F8
执行到下一个断点。

PS:
通过Help->Key Assist或者通过使用快捷键Ctrl+Shift+L可以查看所有快捷键信息。

评论关闭
发表于: java/j2ee | 作者: | 日期: 2008/3/21 09:03

问题
你可能想要将你的应用资源分解到多个文件中,以改善应用的组织和维护性,特别是在团队开发的环境中。

动作要领
创建单独的属性文件并且在struts-config.xml中为每一个文件声明一个message-resources元素。






动作变化
Struts 使用消息资源来提供对错误消息、字段标注、以及其他静态文本的存储机制。对于默认的Struts 实现,你可以将消息存储为属性文件(.properties文件)中的名称(关键字)/值对。消息资源集基本上相当于Java ResourceBundle(资源束)。

你可以将你的消息资源束性文件通过message-resources元素来配置。元素的parameter属性指示了属性文件的相对于 classpath的名称。你可以通过将文件路径中的分隔符替换为点号,以及删除文件名中的.properties扩展名来产生这个属性的值。比如,如果你的属性文件位于/WEB- INF/classes/com/oreilly/strutsckbk/MessageResources.properties,你可以将消息资源元素设置为:


在应用启动时, Struts将创建消息资源的运行时表达(一个对象实例),然后将其保存在servlet context中。

你并不限于只使用一个消息资源。然而,和使用多Struts配置文件不同,如果你使用多个消息资源文件,它们并不时合并成一个文件。相反,你需要定义消息资源的不同的集合。每一个集合使用一个key属性指定的唯一的值来标识。如果这个属性没被使用,那么该消息资源就会被设置为默认的消息集。只有一个默认消息集存在。同时,只有一个消息资源集对应于同一模块中的每一个唯一关键字。如果你使用同一关键字定义了多个消息资源束,则最后一个指定的将被使用。

key属性的值是作为servlet context 属性的名称,从属性文件创建的消息资源束就保存在它之下。key值被用在Struts标签之中,比如bean:message,来标识消息资源集,并引用到来自于属性文件的资源束。下面是你可以如何从labels消息资源来访问一个消息的方法:



bundle属性的值对应于struts-config.xml文件中的message-resources元素的key属性。bean: message标签也有一个key属性,但它和message-resources元素的key属性的含义完全不同。它指定一个特定的属性来访问消息资源中的消息。

不幸的是,这种在XML元素和JSP标签中使用同一个属性名的方法在Struts中很普遍。所以必须仔细研究和注意Struts taglib文档 (http://jakarta.apache.org/struts/userGuide/index.html) 以及Struts 的配置文档(http://jakarta.apache.org/struts/userGuide/configuration.html#struts-config) ,免得搞混淆了。

Struts 并不关心你如何分解你的消息资源属性文件。一种办法是按照消息类型分解。比如,你可以将你的消息资源分解为下面的几组:

* 错误消息
* 提示性消息
* 字段标注
* 表头单元个文本

虽然这样分解消息资源是合乎逻辑和合理的,但在团队环境中则倾向于按照功能进行分解。比如,考虑一个人力资源应用,它有薪酬、福利和管理功能区。你可以为每一个功能区创建一个消息资源属性文件。每一个属性文件都包含该功能区域所特定的错误消息、提示消息、字段标注和其他信息。如果你的开发团队是按照这些业务功能区进行分组的,按照相同的分组原则对消息资源进行分组则更加合理。相同的方法和原则也适用于Struts 配置文件的分解。

如果你熟悉Struts module,上述的每一个功能区都是一个很好的Struts module的候选。如果你使用module,那么你在struts-config文件中为某一个模块所定义的消息资源就仅适用于该模块。事实上,你可以在不同的模块中定义具有相同key属性的message-resource元素。回想一下, Struts 是使用key值将MessageResources保存在servlet context中。更准确地说,实际的值将用于模块名称(通常引用为模块的前缀),以及消息资源的key属性值的串联。
相关招式

第2.4式提供了关于分解应用组件的技术。Struts 用户指南提供了定义消息资源的文档,其地址为:http://jakarta.apache.org/struts/userGuide/configuration.html#resources_config.

Struts MessageResources的JavaDoc API可以在http://jakarta.apache.org/struts/api/org/apache/struts/util/MessageResources.html处找到。

Struts 文档中关于bean:message标签的文档可以在http://jakarta.apache.org/struts/userGuide/struts-bean.html#message处找到。
from:http://www.blogjava.net/SteelHand/archive/2005/05/17/4426.html

评论关闭
发表于: java/j2ee | 作者: | 日期: 2008/3/19 09:03
标签:

在Struts 1.0中,我们只能在web.xml中为ActionServlet指定一个配置文件,这对于我们这些网上的教学例子来说当然没什么问题,但是在实际的应用开发过程中,可能会有些麻烦。因为许多开发人员都可能同时需要修改配置文件,但是配置文件只能同时被一个人修改,这样肯定会造成一定程度上的资源争夺,势必会影响开发效率和引起开发人员的抱怨。
在Struts 1.1中,为了解决这个并行开发的问题,提出了两种解决方案:

  • 多个配置文件的支持
  • 模块的支持

支持多个配置文件,是指你能够为ActionServlet同时指定多个xml配置文件,文件之间以逗号分隔,比如Struts提供的MailReader演示例子中就采用该种方法。



action
org.apache.struts.action.ActionServlet
config /WEB-INF/struts-config.xml,
/WEB-INF/struts-config-registration.xml

1

这种方法可以很好地解决修改冲突的问题,不同的开发人员可以在不同的配置文件中设置自己的Action、ActionForm等等(当然不是说每个开发人员都需要自己的配置文件,可以按照系统的功能模块进行划分)。但是,这里还是存在一个潜在的问题,就是可能不同的配置文件之间会产生冲突,因为在ActionServlet初始化的时候这几个文件最终还是需要合并到一起的。比如,在struts-config.xml中配置了一个名为success的,而在struts-config-registration.xml中也配置了一个同样的,那么执行起来就会产生冲突。

为了彻底解决这种冲突,Struts 1.1中引进了模块(Module)的概念。一个模块就是一个独立的子系统,你可以在其中进行任意所需的配置,同时又不必担心和其它的配置文件产生冲突。因为前面我们讲过,ActionServlet是将不同的模块信息保存在不同的ModuleConfig对象中的。要使用模块的功能,需要进行以下的准备工作:

1、为每个模块准备一个配置文件
2、配置web.xml文件,通知控制器
3、准备各个模块所需的ActionForm、Action和JSP等资源

决定采用多个模块以后,你需要将这些信息告诉控制器,这需要在web.xml文件进行配置。下面是一个典型的多模块配置:

config /WEB-INF/struts-config.xml
config/customer /WEB-INF/struts-config-customer.xml
config/order /WEB-INF/struts-config-order.xml

要配置多个模块,你需要在原有的一个(在Struts 1.1中将其对应的模块称为缺省模块)的基础之上,增加模块对应的。其中表示为config/XXX的形式,其中XXX为对应的模块名,中还是指定模块对应的配置文件。上面这个例子说明该应用有三个模块,分别是缺省模块、customer和order,它们分别对应不同的配置文件。

但是要注意的是,模块的出现也同时带来了一个问题,即如何在不同模块间进行转发?有两种方法可以实现模块间的转发,一种就是在(全局或者本地)中定义,另外一种就是利用org.apache.struts.actions.SwitchAction。

下面就是一个全局的例子:




可以看出,只需要在原有的path属性前加上模块名,同时将contextRelative属性置为true即可。此外,你也可以在中定义一个类似的本地







如果你已经处在其他模块,需要转回到缺省模块,那应该类似下面这样定义,即模块名为空。


此外,你也可以使用org.apache.struts.actions.SwitchAction,例如:




参考文章:
http://www.ibm.com/developerworks/cn/java/l-struts1-1/
http://www.blogjava.net/SteelHand/archive/2005/05/13/4247.html

评论关闭
发表于: sitebuild | 作者: | 日期: 2008/3/18 08:03
标签:

代码如下:


通过\r换行,innerText设置文本时也可以通过\r进行换行。

评论关闭
发表于: java/j2ee | 作者: | 日期: 2008/3/14 10:03

==========================
访问控制
private 私有的
protected 受保护的
public 公共的 More …

评论关闭
发表于: java/j2ee | 作者: | 日期: 2008/3/14 09:03

虽然<html:text>标签会被翻译成HTML中的<text>标签,但它们的属性并非一一对应的关系。
简单总结了一下<html:text>常用的几个属性:

1、 property
对应到<text>标签的name属性,同时要与ActionForm子类中的字段对应。

2、 name
不与<text>标签的任何属性对应。仅对应存在于request或者session范围内的ActionForm的名字,然后会将<html:text>标签的默认值设置为property指定的属性的值。

3、 styleId
对应到<text>标签的ID属性。

4、 size
对应到<text>标签的size属性。

5、 maxlength
对应到<text>标签的maxlength属性。

6、 styleClass
对应到<text>标签的class属性,用来设置文本框的样式。

举个例子:
<html:text property=”phoneNo” styleId=”phoneNo” maxlength=”11″ size=”11″ styleClass=”input-write”></html:text>

会被翻译成如下形式:
<input type=”text” name=”phoneNo” maxlength=”11″ size=”11″ value=”” class=”input-write” id=”phoneNo”>

参考链接:http://struts.apache.org/1.1/userGuide/struts-html.html#text

评论关闭
发表于: other | 作者: | 日期: 2008/3/13 12:03

谁能想象一个未出校门的女学生,能有拥趸无数?

Gia做到了。她是豆瓣网“我们爱讲冷笑话”小组的组长。小组成立两年来,已经拥有组员49998人,成为豆瓣网最火的小组之一。有人称Gia是“文化圈里的小明星”。

互联网上出现了越来越多像Gia一样的人。他们认真经营着自己的小组、博客、论坛,和一批志同道合的朋友一起在网络上开辟一片属于自己的天地。 More …

评论关闭
发表于: java/j2ee | 作者: | 日期: 2008/3/13 12:03

在JDBC应用中,如果你已经是稍有水平开发者,你就应该始终以PreparedStatement代替Statement.也就是说,在任何时候都不要使用Statement. More …

评论关闭