我正在尝试将Silverlight控件嵌入到使用Facelets的JSF 2.0页面中,但是,当页面呈现时,我收到一条非常模糊的错误消息。
有谁能建议我怎么做?我有我的clientaccesspolicy.xml和silverlight.js。
当我删除<object>
标记时,JSF页面会正确显示
如果我将<object>
标记放入vanilla HTML页面,则Silverlight控件会在我的Tomcat 7.0.25中正确呈现。
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:cayman="http://www.fnet.com/cayman/jsf"
template="/WEB-INF/jsf/template.xhtml">
<ui:define name="title">Home Page</ui:define>
<ui:define name="content">
<h:form>
<ui:include src="header.xhtml">
<ui:param name="loginBean" value="#{UserLoginComponent}" />
</ui:include>
<div>
<p:growl />
</div>
<center>
<p:panel header="Home Page">
<f:verbatim escape="#{true}">
<object data="data:application/x-silverlight-2,"
type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="Dashboard.xap" />
<a
href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0"
style="text-decoration: none"> <img
src="http://go.microsoft.com/fwlink/?LinkId=161376"
alt="Get Microsoft Silverlight" style="border-style: none" />
</a>
</object>
</f:verbatim>
<iframe id="_sl_historyFrame"
style="visibility: hidden; height: 0px; width: 0px; border: 0px"></iframe>
<h:inputHidden id="userid" value="ADMINISTRATOR" />
<h:inputHidden id="password" value="admin" />
<h:inputHidden id="adminserviceuurl"
value="http://129.196.218.35:8080/cayman/services" />
</p:panel>
</center>
</h:form>
</ui:define>
答案 0 :(得分:0)
删除<f:verbatim>
。它是JSP上JSF 1.x的旧时代的遗留物,在JSF 2.x中被弃用。
对于您忘记在问题中添加的含糊不清的错误消息,请确保您&
正确转发XML special characters。 Facelets是一种基于XML的视图技术,在生成HTML之前将由XML解析器进行解析。 XML解析器在遇到应该代表实体开始的&
时会窒息,但没有;
来表示实体的结束,或者当实体本身不代表任何东西时一点都不。
所以,替换
href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0"
通过
href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0"