我已经开始维护一个遗留的JSF应用程序。它使用myFaces 1.1。x和战斧1.1.6。我需要打印META
tagX-UA-Compatible
作为HEAD
元素的第一个元素,否则IE会忽略它。
<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="t" uri="http://myfaces.apache.org/tomahawk"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<f:view>
<t:documentHead>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
它将产生
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" src="/Viewer/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/15311471/navmenu.jscookmenu.HtmlJSCookMenuRenderer/JSCookMenu.js"><!--
//--></script>
<script type="text/javascript" src="/Viewer/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/15311471/navmenu.jscookmenu.HtmlJSCookMenuRenderer/MyFacesHack.js"><!--
//--></script>
<script type="text/javascript"><!--
var myThemeMiniBlackBase='/Viewer/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/15311471/navmenu.jscookmenu.HtmlJSCookMenuRenderer/ThemeMiniBlack/';
//--></script>
<script type="text/javascript" src="/Viewer/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/15311471/navmenu.jscookmenu.HtmlJSCookMenuRenderer/ThemeMiniBlack/theme.js"><!--
//--></script>
<link rel="stylesheet" href="/Viewer/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/15311471/navmenu.jscookmenu.HtmlJSCookMenuRenderer/ThemeMiniBlack/theme.css" type="text/css" />
<script type="text/javascript" src="/Viewer/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/15311471/popup.HtmlPopupRenderer/JSPopup.js"><!--
//--></script>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
如何强制元标记成为第一个元素?我尝试了纯HTML HEAD元素,但它也不起作用。
我需要
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
更新:
其中一些Java脚本和样式是由于以下标记而呈现的:
<t:jscookMenu theme="ThemeMiniBlack" layout="hbr" immediate="true">
剩下的javascript来自
<t:popup closePopupOnExitingElement="true" closePopupOnExitingPopup="true"
displayAtDistanceX="10" displayAtDistanceY="20" styleClass="popup">
问题是我是否可以强制执行我给t:documentHead的内容具有优先权?我担心我需要写我的自定义标签。
我会尝试在自定义java过滤器中添加meta标记。
<filter>
<filter-name>MetaTagsFilter</filter-name>
<filter-class>com.yournamespace.MetaTagsFilter</filter-class>
</filter>
然后对JSF servlet进行过滤器映射:
<filter-mapping>
<filter-name>MetaTagsFilter</filter-name>
<servlet-name>FacesServlet</servlet-name>
</filter-mapping>
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
在您的过滤器逻辑中,在servlet执行处理之后,添加meta标记,如下所示:
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
HtmlResponseWrapper capturingResponseWrapper = new HtmlResponseWrapper(
(HttpServletResponse) response);
filterChain.doFilter(request, capturingResponseWrapper);
if (response.getContentType() != null
&& response.getContentType().contains("text/html")) {
// Try this https://stackoverflow.com/a/32830377/1199132
capturingResponseWrapper.addHeader("X-UA-Compatible", "IE=edge");
// Or this, that way you have more control over WHERE it gets written
String content = capturingResponseWrapper.getCaptureAsString();
// replace stuff here (find the <head></head> tags and add the <meta> at the very beginning)
System.out.println(replacedContent);
response.getWriter().write(replacedContent);
}
}
另见:
初次见面,请多多关照。我是生在博多,成长在Git社区的「猴子老师」。今天我们要来一起学习版本管理系统「Git」哦。 要把文档还原到编辑前的状态,大家都是怎么做的呢? 最简单的方法就是先备份编辑前的文档。使用这个方法时,我们通常都会在备份的文档名或目录名上添加编辑的日期。但是,每次编辑文档都要事先复制,这样非常麻烦,也很容易出错。 再加上,如果像上图那样毫无命名规则的话,就无法区分哪一个文档是最新的
react 18 里的类组件在严格模式下会执行一次模拟渲染, 在类组件的生命周期里表现如下 first.constructor -> second.constructor -> first.componentDidMount -> first.componentWillUnmount -> second.componentDidMount 一个比较简单的例子就是,复现链接(https://play
我在一个应用程序的前端原型上工作,该应用程序具有给定的JS、React和CoreUI4 React技术栈。我来自Python背景,在网络开发和我给定的技术堆栈方面没有太多经验。当我不得不开始使用钩子时,这一点变得很明显。 问题 我真的不明白为什么它不更新我的和/或不渲染。我需要一个条件渲染,我也使用。 我试图: 从我的主应用程序中传递一个更大的状态,一旦我启动条件逻辑(挂钩规则)就无法工作。 当我
尽管试图避免所有记录在案的陷阱,阻止React在状态更改后重新渲染,但我仍然无法解决我的问题: } 从每个长方体组件调用update函数,并触发长方体网格上新颜色的指定。 试图避免常见的错误: 颜色数组只有在通过扩展运算符从状态复制后才被修改 通过setState()传递新数组 此外,我还处理了两个组件中函数的实例绑定 但是,尽管onClick成功触发了状态更改,但不会进行重新渲染。我在这里缺少的
我正在将当前的ec2环境从amazon linux迁移到Centos7。一路上有一些障碍,但我设法在这里和那里调整东西,让一切都工作起来。然而,我并没有被雷迪斯卡住。 我有一个小的redis集群作为一个简单的K/V缓存运行。对于这次迁移,我一直遵循以下说明。安装似乎工作正常,但我检查了systemctl中的状态,并看到以下内容: $sudo systemctl status Redis.servi
问题内容: 我在Swift 3.0中根据html内容创建了pdf文件: 除了我的base64编码图像外,其他所有内容都可以正常渲染。在Web视图中或在Safari或chrome浏览器中的HTML内容本身可以正确显示,并且可以正确显示所有图像。但是图像永远不会渲染到pdf中。 为什么不渲染图像?如何使它们渲染? 问题答案: 我找到了解决方案! 导出到PDF会在渲染过程完成之前进行。如果您放入很小的图