JSF 2 - Как сохранить определения сущностей XML в выводе HTML? - PullRequest
3 голосов
/ 26 апреля 2011

Я работаю над веб-приложением JSF 2. Если я определю лицевую сторону, которая начинается следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN"
"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd"[
    <!ENTITY nbsp "&#160;"> 
    <!ENTITY pound "&#163;"> 
]>
<html 
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<h:head>

При отображении в формате HTML определения сущностей были удалены. Есть ли способ сохранить их, если я действительно хочу, чтобы они были включены в выходную разметку?

1 Ответ

0 голосов
/ 18 мая 2011

Я не знаю, можете ли вы написать новый рендер, но у меня была похожая проблема с ответом на XML-результат.

В моем случае я взял HttpOutputStream в бэк-бине и написал XML.Возможно, если вы пропустите функцию close и ctx.responseComplete () из моего примера, JSF обычно записывает свой ответ в поток.

FacesContext ctx = FacesContext.getCurrentInstance();

final HttpServletResponse resp = (HttpServletResponse)ctx.getExternalContext().getResponse();
resp.getOutputStream().write(xml.getBytes());
resp.getOutputStream().flush();
resp.getOutputStream().close();

ctx.responseComplete();
...