基于XML语法的JSP

最近公司想把普通的JSP转换为基于严格的xml语法来写jsp,google了一天,发现都是些零零碎碎的资料,不完整,现在根据自己的所查资料和实践,总结如下(另:基于XML语法的jsp成为jsp Document,下文中就这么称呼了,呵呵).

xml语法,格式统一,编写的文件结构清晰,并且易学易用。而用xml语法来编写jsp文件,则可以轻松编写出易于管理和阅读的jsp文件,并且升级方便,只需替换DTD文档即可。用xml语法编写的文件,由于少来很多<%%>等符号,整体看来较为美观并且结构清晰。本文介绍下转换的规则和步骤。 

首先,转换规则如下表:

JSP 元素

XML相应元素

<%@ page ... %>

<jsp:directive.page ... />

<%@ taglib ... %>

使用<jsp:root>xmlns属性设定

<%@ include ... %>

<jsp:directive.include .../>

<%! ... %>

<jsp:scriptlet> .... </jsp:scriptlet>

<% ... %>

<jsp:scriptlet> .... </jsp:scriptlet>

<%= ....%>

<jsp:expression> .... </jsp:expression>

 

转换的步骤基本上如下:
  1. 文件开头加上XML文档的标识:<?xml version="1.0" encoding="UTF-8" ?>

  2. 加入根元素<jsp:root></jsp:root>,这个不是必须的,但个人建议最好加上,这样就显得整个文件较有层次感,更接近XML文档的习惯语法。

  3. taglib 标签库引入的转换。如果进行了第二步,即添加了根元素<jsp:root></jsp:root>,则可以通过其xmlns属性设置。例如,普通jsp语法:<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>;转换为jsp Document后变为:<jsp:root  xmlns:f="http://java.sun.com/jsf/core">。当然,也可以不在根元素<jsp:root>内引入,而是在用到某个或某类标签时再引入,如<html xmlns="http://www.w3.org/1999/xhtml">

  4. <%@ page %>的转换。转换为<jsp:directive.page ... />。例如,对于<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>,转换为<jsp:directive.page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" />。

  5. <%= %>转换。对于在页面内用java代码编写的代码用<jsp:scriptlet> </jsp:scriptlet>及<jsp:expression> </jsp:expression>代替。但要注意只是java代码上述放在两个标签内。例如,<link href="<%= request.getContextPath() %>/css/grid.css"
      rel="stylesheet" type="text/css" />
    应转换为:

    <jsp:text>
       <![CDATA[<link href="]]>
      </jsp:text>
      <jsp:expression>request.getContextPath()</jsp:expression>
      <jsp:text>
       <![CDATA[/css/grid.css"
       rel="stylesheet" type="text/css" />]]>
      </jsp:text>。

     对于<jsp:scriptlet></jsp:scriptlet>与<jsp:scriptlet></jsp:scriptlet>的转换亦相同。

  6. 最后,对于为每一个非JSP元素或者不能识别标签建立一个CDATA元素。例如“<p>&nbsp;</p>”,不能识别  &nbsp,需用CDATA定义,如上面需转换为

    <jsp:text>
       <![CDATA[<p>&nbsp;</p>]]>
      </jsp:text>

    其他也一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值