7
28

在使用中发现在很多情况下

对代码的格式化会出现问题

一直都没有解决,比较郁闷,例如,在java文件中有泛型,在xml元素中有“-”

都会出现格式化错误的问题,往往会出现不可预计的页面混乱

今天终于解决了

只要关闭了wordpress中的XHTML自动修复功能就还可以了!

在“设置”–>“撰写”–>“WordPress 自动修正无效的 XHTML 嵌套”

把这个复选框去掉,然后确定就可以了

17fav 收藏本文

标签:

7
28

SiteMesh基本配置

作者: 舞命小丢 分类:java 0 comments

首先在web.xml中加入SiteMesh过滤器

<filter>
  <filter-name>sitemesh</filter-name>
  <filter-class>
      com.opensymphony.module.sitemesh.filter.PageFilter
  </filter-class>
  <init-param>
    <param-name>debug.pagewriter</param-name>
    <param-value>true</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>sitemesh</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

然后,在WEB-INF目录下生成一个decorators.xml文件

<decorators defaultdir="/WEB-INF/jsp/layout">
	<excludes>
		<pattern>/script/*</pattern>
		<pattern>/style/*</pattern>
		<pattern>/ajax/*</pattern>
	</excludes>
	<decorator name="manage" page="manage.jsp">
		<pattern>/manage/*</pattern>
	</decorator>
	<decorator name="user" page="user.jsp">
		<pattern>/user/*</pattern>
	</decorator>
	<decorator name="printable" page="printable.jsp" />
	<decorator name="ajax" page="ajax.jsp" />
</decorators>

decorators定义了模板页的位置,也就是所在文件夹

excludes定义了不过滤的页面
其下的pattern,排除页面的规则,可以声明多个

decorator定义了装饰器
其下的pattern定义过滤规则,如不定义,就不过滤任何页面,除非在其他位置指定
name属性定义了装饰器的名字,page定义模板页的名称

最后添加sitemesh.xml文件
在这个文件里自定义使用哪个页面解析器来解析指定的内容类型或者使用哪种修饰器映射方案

<sitemesh>
    <property name="decorators-file" value="/WEB-INF/decorators.xml" />
    <excludes file="${decorators-file}" />
 
    <page-parsers>
        <parser content-type="text/html"
            class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
        <parser content-type="text/html;charset=ISO-8859-1"
            class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
    </page-parsers>
 
    <decorator-mappers>
        <mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
            <param name="config" value="${decorators-file}" />
        </mapper>
    </decorator-mappers>
</sitemesh>

这里给出了一个模板,包含了最基本的SiteMesh配置。

page-parsers定义了使用的文件解析器,及其解析文件的格式和编码方式
decorator-mappers定义SiteMesh的映射方案,这里仅定义了配置文件映射方式

17fav 收藏本文

标签:

7
28

NetBeans IDE 快捷键

作者: 舞命小丢 分类:java 0 comments

代码编辑器特性

1、Application应用程序的参数args的设置,在Build->Set Main Projects Configuration
2、程序运行快捷键F6
3、@Deprecated
4、代码自动完成Ctrl+Space,利用这个可以添加类的构造函数
5、变量统一修改Ctrl+R,取消用esc
6、给方法添加注释,Alt+Enter,这个有问题
7、Alt+Insert,可以添加类的构造函数Constructor、Getter、Setter、equals() and hashCode()、Override Method…
8、在右边编辑器文件名上点击右键,可以显示文件历史修改记录及还原,可以Unlock window
9、Alt+Enter,选择对象后,可以Introduce Variable…、Introduce Constant…生成字符串常量、Introduce Field…
10、注释 Ctrl+Shift+T,取消注释Ctrl+Shift+D,这个有问题
Ctrl+Shift+C,注释间切换
11、显示文档,Ctrl+Shift+Space
12、Ctrl+Shift+Up/Down 向上或者向下复制,Alt+Shift+Up/Down 向上或者向下移动
13、格式化文档Alt+Shift+F,移去文档中的空格在菜单Source->Remove Trailing Space

代码编辑器特性

在 NetBeans 6 中,其代码编辑器得到了显著了增强。以下是几个常用的快捷键,每个快捷键都代表其编辑器的一个特性:

  • 代码自动完成:Ctrl-\,这个可以自动完成诸如创建对象的代码
  • 代码自动插入:Alt-Insert,这个可以自动插入Getter-Setter方法的代码
  • 按照提示操作:Alt+Enter,例如:插入所需要的包或删除未使用的引入包
  • 自动修复引入包:Ctrl-Shift-I
  • 单独修复引入包:Alt-Shift-I
  • 自动粘贴代码:Ctrl-Shift-上/下方向键
  • 自动移动代码:Alt-Shift-上/下方向键
  • 代码模板实时自动补全:Tab
  • 变量重命名:Ctrl-R
  • Javadoc弹出框提示:Ctrl-Shift-Space
从一般的 Java 应用程序开始

NetBeans 中的项目(Project)概念非常重要。一个应用程序中所用到的源代码、资源等文件均包含在这个项目中。我们使用 NetBeans 开发程序,大部分也都建立在项目的基础上。通常开始使用 NetBeans 的第一步是新建一个新的项目。在硬盘上,每个项目以一个单独的目录形式存在。项目目录中包含src源代码子目录,build编译子目录,test测试子目 录,dist发布子目录。

基本快捷键:

以下是 NetBeans 6 的快捷键,如果您更倾向 NetBeans 5.5 或 Eclipse 的快捷键方式,可以在选项中的 Keymap 中选择。

  • 新建项目:Ctrl-Shift-N
  • 自动格式化代码:Alt-Shift-F
  • 保存文件:Ctrl-S
  • 代码补全:Ctrl-\
  • 代码自动完成:默认Tab (我个人更喜欢空格键,可以在“选项-Editor”里修改)
  • 自动插入代码:Alt-Insert
  • 自动修复导入包:Ctrl-Shift-I
  • 显示 Javadoc:Alt-F1
  • 运行主项目:F6
  • 编译主项目:Shift-F11
  • 运行文件:Shift-F6
  • 新建 JUnit 测试:Ctrl-Shift-U
  • 运行测试:Alt-F6
  • 设置断点:Ctrl-F8
  • 调试主项目:Ctrl-F5
  • 调试文件:Ctrl-Shift-F5
  • 逐步调试:F7

天天使用eclipse,偶尔使用一下Netbeans,感觉快捷键还有些不太习惯!

不过可以把Netbeans的快捷键设置成eclipse,这样很大程度的方便eclipse的开发者

不错,很人性化的设置

17fav 收藏本文

标签: ,

7
27

jsp解析XML

作者: 舞命小丢 分类:java 0 comments

同学要个jsp解析xml的例子,我就答应了

说句实话,好久都没有直接写过jsp了!

解析xml,也都好久没有摸过的东西了啊!

忽然拿起来还有些生疏啊!

随便写了一个,贴出代码和大家分享一下!

JSP文件

< %
	//建立解析工厂
	DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
	//创建解析器
	DocumentBuilder db = dbf.newDocumentBuilder();
	//得到解析文件
	String xml = application.getRealPath("user.xml");
	//开始解析xml文件
	Document doc = db.parse(new File(xml));
	//格式化DOM,也就是去除不必要的Text Node
	doc.normalize();
	//得到根元素
	Element root = doc.getDocumentElement();
	//得到所有user元素
	NodeList users = root.getElementsByTagName("user");
%>
<table>
	<thead>
		<tr>
			<th>ID</th>
			<th>firstName</th>
			<th>lastName</th>
			<th>password</th>
		</tr>
	</thead>
	< %
		for (int i = 0; i < users.getLength(); i++) {
			Element user = (Element) users.item(i);
	%>
	<tr>
		<td>< %=user.getElementsByTagName("id").item(0)
								.getFirstChild().getNodeValue()%></td>
		<td>< %=user.getElementsByTagName("firstName").item(0)
								.getFirstChild().getNodeValue()%></td>
		<td>< %=user.getElementsByTagName("lastName").item(0)
								.getFirstChild().getNodeValue()%></td>
		<td>< %=user.getElementsByTagName("password").item(0)
								.getFirstChild().getNodeValue()%></td>
		< %
			}
		%>
	</tr>
</table>

要解析的XML文件

<users>
	<user>
		<id>1</id>
		<firstname>Song</firstname>
		<lastname>Thinking</lastname>
		<password>songlipeng</password>
	</user>
	<user>
		<id>2</id>
		<firstname>Zheng</firstname>
		<lastname>Quanling</lastname>
		<password>zhengquanling</password>
	</user>
</users>

对于高手,这些就没有什么必要了!不过偶尔也是会忘记的啊!温故而知新啊!^_^

17fav 收藏本文

标签: , ,

7
26

本来是没有这种想法要升级的!

但是最近blog出现500错误,所以不得不升级,修复blog

发现2.6比以前的2.3好看了一些啊!

功能上基本一直吧!

没有发现什么太大的新功能啊!

17fav 收藏本文

标签:

7
26

前几天不再知道为什么好好的一直出现500错误!

一直都好好的,估计是服务器某些东西升级了?让我今天搞了半天才终于搞定了啊!

不容易啊!o(∩_∩)o…

不过终于开始弄好了啊!

blog好久都没有更新了啊!

这次算是一个好的开始吧!

哈哈

工作了啊!

要多写些技术文章了啊!

希望大家更加关注!

17fav 收藏本文

标签: ,

7
03

Hibernate 的三种实体模型

作者: 舞命小丢 分类:java 0 comments

Hibernate有三种内建的实体模型:

  • POJO-一个基于POJO,持久类现实的域模型,这是我们已经使用了很长时间的,也是它默认的实体模型。
  • MAP-不需要Java类;在Java应用程序中实体表现为HashMap。这个模型允许快速建立全动态应用程序。
  • DOM4J-不需要Java类,实体表现为基于dom4j API的XML元素,这个模型通常用于导入和导出数据,或通过XSLT渲染和转化数据。
17fav 收藏本文

标签: , ,

5
16

JSTL之c:choose

作者: 舞命小丢 分类:java 0 comments

<c:choose> 操作的语法
<c:choose>
<c:when test=”expression”>
body content
</c:when>
<c:when test=”expression”>
body content
</c:when>

<c:otherwise>
body content
</c:otherwise>
</c:choose>

每个要测试的条件都由相应的 <c:when> 标记来表示,至少要有一个 <c:when> 标记。只会处理第一个其 test 值为 true 的 <c:when> 标记体内的内容。如果没有一个 <c:when> 测试返回 true ,那么会处理 <c:otherwise> 标记的主体内容。注:尽管如此, <c:otherwise> 标记却是可选的; <c:choose> 标记至多可有一个嵌套的 <c:otherwise> 标记

17fav 收藏本文

标签:

5
16

JSTL之c:forEach

作者: 舞命小丢 分类:java 0 comments

<c:forEach>标签用于通用数据循环,它有以下属性

属 性 描 述 是否必须 缺省值
items 进行循环的项目
begin 开始条件 0
end 结束条件 集合中的最后一个项目
step 步长 1
var 代表当前项目的变量名
varStatus 显示循环状态的变量

vaStatus 属性

JSTL中的varStatus和 var 属性一样, varStatus 用于创建限定了作用域的变量。不过,由 varStatus 属性命名的变量并不存储当前索引值或当前元素,而是赋予 javax.servlet.jsp.jstl.core.LoopTagStatus 类的实例。该类定义了一组特性,它们描述了迭代的当前状态,下面列出了这些特性:

特性         Getter                       描述current    getCurrent()           当前这次迭代的(集合中的)项

index       getIndex()               当前这次迭代从 0 开始的迭代索引

count       getCount()             当前这次迭代从 1 开始的迭代计数

first          isFirst()                  用来表明当前这轮迭代是否为第一次迭代的标志

last          isLast()                  用来表明当前这轮迭代是否为最后一次迭代的标志

begin      getBegin()             begin 属性值

end         getEnd()                 end 属性值

step        getStep()                step 属性值

c:forEach 中vaStatus的属性可以获得迭代的自身状态,如:
<c:forEach var=”" items=”" varStatus=”status”>
<c:out value=”${status.current}”/> 当前对象
<c:out value=”${status.index}”/> 此次迭代的索引
<c:out value=”${status.count}”/> 已经迭代的数量
<c:out value=”${status.first}”/> 是否是第一个迭代对象
<c:out value=”${status.last}”/> 是否是最后一个迭代对象
</c:forEach>

<c:forEach>标签的items属性支持Java平台所提供的所有标准集合类型。此外,您可以使用该操作来迭代数组(包括基本类型数组)中的元素。它所支持的集合类型以及迭代的元素如下所示:

java.util.Collection:调用iterator()来获得的元素。

java.util.Map:通过java.util.Map.Entry所获得的实例。

java.util.Iterator:迭代器元素。

java.util.Enumeration:枚举元素。

Object实例数组:数组元素。

基本类型值数组:经过包装的数组元素。

用逗号定界的String:分割后的子字符串。

javax.servlet.jsp.jstl.sql.Result:SQL查询所获得的行。

17fav 收藏本文

标签:

4
18

JSTL function 标签 使用

作者: 舞命小丢 分类:java 0 comments

<taglib>
<taglib-uri>http://java.sun.com/jstl/fn</taglib-uri>
<taglib-location>/WEB-INF/fn.tld</taglib-location>
</taglib>

长度函数: fn:length

字符串处理函数: fn:contains fn:containsIgnoreCase fn:endsWith fn:escapeXml fn:indexOf fn:join fn:replace fn:split fn:startsWith fn:substring fn:substringAfter fn:substringBefore fn:toLowerCase fn:toUpperCase fn:trim

JSP 页面上:

<%@ taglib uri=”/WEB-INF/fn.tld” prefix=”fn” %>

${fn:toUpperCase(”sdjkhjshjhjd”) }

这个例子将输出 这些字母的大写字母

一.长度函数 fn:length 函数

长度函数 fn:length 的出现有重要的意义。在 JSTL1.0 中,有一个功能被忽略了,那就是对集合的长度取值。虽然 java.util.Collection 接口定义了 size 方法,但是该方法不是一个标准的 JavaBean 属性方法(没有 get,set 方法),因此,无法通过 EL 表达式“ ${collection.size} ”来轻松取得。

fn:length 函数正是为了解决这个问题而被设计出来的。它的参数为 input ,将计算通过该属性传入的对象长度。该对象应该为集合类型或 String 类型。其返回结果是一个 int 类型的值。下面看一个示例。

<%ArrayList arrayList1 = new ArrayList();

arrayList1.add(”aa”);

arrayList1.add(”bb”);

arrayList1.add(”cc”);

%>

<%request.getSession().setAttribute(”arrayList1″, arrayList1);%>

${fn:length(sessionScope.arrayList1)}

假设一个 ArrayList 类型的实例“ arrayList1 ”,并为其添加三个字符串对象,使用 fn:length 函数后就可以取得返回结果为“ 3 ”。

阅读全文 »

17fav 收藏本文

标签:

收藏 & 分享

Powered by 17fav.com