jspx是JSP 2.0中的一项重要的功能提升,jspx其实就是以xml语法来书写jsp的文件。我们知道jsp的格式,其中有一个重要的特征就是包含“<%”声明符,jsp文件通常在服务器端处理后呈现为html代码,尽管jsp通常的目的是处理web页面,但是jsp的代码呈现却不是我们希望的html或xml格式,代码非常混乱,这也是为什么出现jspx啦。
jspx完全符号xml语法规范,这种规范化会带来很多的好处,我们编码会方便很多,如xml形式方便代码格式化,便于编辑呈现。下面让我们看看传统的jsp代码和现在的jspx代码:(jspx的编辑需要IDEA 5.0版本)
jsp代码:
demo.jsp
<%@page contentType="text/html;charset=gb2312" %>
<%@page import="java.util.*" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>my demo jsp</title>
</head>
<body>
<%
Date now=new Date();
out.println(now.toString());
%>
</body>
</html>
demo.jspx
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jsp/jstl/core" version="1.2">
<jsp:directive.page contentType="text/html" pageEncoding="gb2312"/>
<jsp:directive.page import="java.util.Date"/>
<html>
<head>
<title>my demo jspx</title>
</head>
<body>
<jsp:scriptlet>
Date now = new Date();
out.println(now.toString());
</jsp:scriptlet>
</body>
</html>
</jsp:root>
在jspx中,我们完全看不到了我们熟悉的“<%”和“%>”符号,应为这两个符号和xml格式完全不兼容的,如果你想使用jsp scriptlet,你可以使用“<jsp:scriptlet>”进行操作。原来的taglib声明现在全部转换为xml的命名空间(namespace),taglib的使用也非常方便。如果是开发web页面,jspx完全就是html代码,只是在页面之前加入了jsp:root的声明。Jspx的编写是非常方便的,下面我们就介绍一下实际开发中如何去编辑jspx文件。
1 使用Dreamweaver编辑jspx:这里我们将jspx完全作为html去对待,Dreamweaver默认没有针对jspx后缀名的文件进行编辑关联,我们只需打开%DREAMWEAVER_HOME%\Configuration\DocumentTypes\MMDocumentTypes.xml文件,在id为“html”的documenttype元素的“winfileextension”属性值中添加jspx即可,当我们打开jspx文件时,只需按照普通的html文件编辑即可,利用Dreamweaver出色的可视化的界面设计,这种编辑方式比编辑jsp文件方便多啦。
2 在IntelliJ IDEA环境下没有提供图形化的编辑环境,但是代码的编辑功能一点也不弱。IDEA默认提供了jspx文件模板,如果web module的化,就可以之间创建jspx文件。IntelliJ IDEA可以根据html的命名空间将jspx作为普通html文件编辑,包括提示、css支持等,同时提供了这种命名空间的代码提示,包括xml的schema和java的taglib两种方式,这两者完全可以整合在jspx文件中,由于jspx是标准的xml文件,格式化也成为可能。针对jsp这个默认的命名空间,IDEA提供了更多的支持,如自动import导入,jsp scriptlet的代码提示等等,你在编辑的时候就会发现这些功能。
总结:jspx对开发来说确实是一个福音,用xml语法去书写jsp文件,这使得代码更加规范,规范的代码同时也是图形化操作的基础,在加上对各种taglib的命名空间支持,相信对今后的图形化方式编辑jsp是非常有用的。