Facelets依赖XML命名空间来使用XHTML.HTML 4如何,据我所知,HTML 5不支持名称空间.HTML 5还有一些XHTML中没有的新元素.甚至HTML 4和XHTML在它们支持的元素和属性方面也存在一些差异.
问题是:是否可以使用Facelets呈现HTML 4/5文档?如果是这样,怎么样?
我有一个使用标签模板的页面.我的web.xml非常基础.
我只想在页面中运行一些代码.
不,我对标签或其他替代品不感兴趣.我想使用坏练习scriptlet哈哈.
到目前为止,我收到此"HTTP ERROR 500"错误:
Scripting elements ( %!, jsp:declaration, %=, jsp:expression, %, jsp:scriptlet ) are disallowed here.
虽然我的文件看起来像:
/WEB-INF/web.xml
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>
/WEB-INF/tags/wrapper.tag
<%@tag description="Simple Wrapper Tag" pageEncoding="UTF-8"%>
<%@ attribute name="title" required="true" type="java.lang.String"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>${title}</title>
</head>
<body>
    <jsp:doBody />
</body>
</html>
的index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="t" tagdir="/WEB-INF/tags"%>
<t:wrapper>
    <jsp:attribute name="title">My nice title</jsp:attribute>
    <jsp:body>
    <h1><%="some code generated …JSPX具有转向的可爱副作用:
<div class="magic"></div>
成:
<div class="magic" />
对于许多浏览器而言,即使它是有效的XHTML,也会导致布局混乱和混乱.因此,我使用了一个groovy脚本来查找所有可能的错误的HTML与以下正则表达式:
def m = html =~ /<(\w+)[^>]*?><\/(\w+)>/
def bad = m.findAll { it[1] == it[2]  };
有没有办法让JSPX XML处理器不自动关闭标签?
在我的default.jspx中,它包含页面的基本布局,我试图导入一些jquery库,如下所示
<head>
    ...
    <spring:url value="/resources/js/lib/jquery-1.9.1.min.js" var="jquery_url" />
    <spring:url value="/resources/js/lib/jquery.tokeninput.js" var="jquery_tokeninput_url" />
    <script src="${jquery_url}" type="text/javascript"></script>    
    <script src="${jquery_tokeninput_url}" type="text/javascript"></script>
    <script type="text/javascript">
        $.noConflict();
    </script>
    <util:load-scripts />
    ...
</head>
但是当页面在浏览器中呈现时,第一个脚本标记会吞下另外两个脚本标记
<head>
...
<script type="text/javascript" src="/roo-inari/resources/js/lib/jquery-1.9.1.min.js">
//These lines are inside the first script tag
<script type="text/javascript" src="/roo-inari/resources/js/lib/jquery.tokeninput.js"/>
<script type="text/javascript">
        $.noConflict();
//The tag is closed here
</script>
<link href="/roo-inari/resources/dijit/themes/tundra/tundra.css" type="text/css" rel="stylesheet">
...
知道可能导致这种情况的原因吗?该项目基于spring roo生成的web mvc脚手架.我使用的是Chrome v.25.