我有我支持bean中返回的HTML代碼的屬性:後臺bean的屬性,它應該返回一個字符串的HTML代碼返回空字符串
public String getHtmlPrevisualizar() {
return "<html><head><title></title></head><body>Hello world.</body></html>";
}
我想要做的就是在一個iframe中顯示此HTML代碼。我用javascript做到這一點。這是xhtml頁面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<f:loadBundle basename="resources" var="msg" />
<head>
<title>#{msg['pageTitle']}</title>
</head>
<body>
<ui:composition template="/WEB-INF/facelets/templates/sqa/plantilla.xhtml">
<ui:define name="title">#{msg['pageTitle']}</ui:define>
<ui:define name="javascript">
<script type="text/javascript">
function showPreview() {
var doc = document.getElementById('iframePreview').contentWindow.document;
doc.open();
doc.write('#{nuevoEditarEstructura.htmlPrevisualizar}');
doc.close();
return false;
}
function showPreview2() {
var doc = document.getElementById('iframePreview').contentWindow.document;
doc.open();
doc.write('<html><head><title></title></head><body>Hello world.</body></html>');
doc.close();
return false;
}
</script>
</ui:define>
<ui:define name="content">
<h:form>
<a4j:commandLink value="Preview" styleClass="boton" onclick="showPreview();"/>
<a4j:commandLink value="Preview2" styleClass="boton" onclick="showPreview2();"/>
<br/>
<br/>
<h:outputText value="#{nuevoEditarEstructura.htmlPrevisualizar}" />
<br/>
<br/>
#{nuevoEditarEstructura.htmlPrevisualizar}
<br/>
<br/>
</h:form>
<iframe id="iframePreview">
</iframe>
</ui:define>
</ui:composition>
</body>
</html>
有兩個commandLinks。第一個從backing bean獲取html代碼,第二個在javascript中使用字符串編寫html代碼。第一個commandLink不起作用。如果我查看頁面的源代碼,則應該從後臺bean返回的值爲空。
我已經從印刷在背襯也豆該屬性的值與此:
<h:outputText value="#{nuevoEditarEstructura.htmlPrevisualizar}" />
<br/>
<br/>
#{nuevoEditarEstructura.htmlPrevisualizar}
但理智最多被示出。我打電話給getHtmlPrevisualizar()
,並在eclipse控制檯中打印它的內容,並返回正確的html代碼。
我知道轉義字符和facelets可能存在一些問題,我期望不得不處理html中被轉義的字符,但我什麼也沒得到。
這應該是您評論底部的修改。 –
@LuiggiMendoza嗯,這是問題的實際答案,這就是爲什麼我寫了答案而不是評論。我想刪除這個問題,但也許如果別人有問題,調用backig bean什麼都不會回退,這個問題可以幫助他們檢查支持bean名稱是否拼寫正確。 – Pablo