2013-11-15 2 views
1

У меня есть два поля: вход и выход. На входе я пишу html-код, нажимаю кнопку и вижу визуализированный код в поле вывода.Обработка HTML-содержимого в JSF

<h:form id="displayForm"> 
     <p:commandButton value="Execute" actionListener="#{screenController.executeCode}" update="displayForm:output"/> 
     <h:inputTextarea value="#{screenModel.input}" rows="20" cols="165"/> 
     <br/> 
     <h:outputText id="output" value="#{screenModel.output}" escape="false"/> 
    </h:form> 

Но, когда я писал

<script> 
document.write("1") 
</script> 

Все страницы оказаны. Я совсем не знаю о java-script, но у меня есть идея. Я могу заменить документ на некоторый код, чем рендеринг будет только в поле «output». Как я могу это сделать?

ответ

1

Распечатайте его на отдельной странице, которую вы показываете через .

Независимо от подхода, при повторном просмотре управляемых пользователем входных данных, так как unescaped HTML открывает на вашем сервере отверстие для удаления XSS attack. Вы не хотите, чтобы конечные пользователи могли запускать JavaScript полностью из-под контроля на вашем сервере. Санируйте все потенциально вредоносные HTML-теги и атрибуты прочь, используя некоторый очиститель HTML, как Jsoup.

+0

Да, но как установить значение для html-страницы iframe? –

+0

Вы можете использовать флэш-область для этого или передать идентификатор в качестве параметра запроса. – BalusC

Смежные вопросы