2010-06-17 3 views
1
ClientScript.RegisterStartupScript(
    this.GetType(), 
    "ReturnScript", 
    "<script language='javascript'> alert('" + ErrorMsg + "');</script>"); 

чередуются в Java (JSF)Как позвонить JavaScript из backingbean JSF

+0

Либо у меня не было достаточно кофе еще, или это баннер день для неопределенных, непонятных вопросов. – Pointy

+1

@Pointy: этот пример кода приходит из мира ASP.NET. Он просит эквивалент JSF. – BalusC

ответ

5

Просто распечатайте код JS, как есть в представлении JSF. JS работает на клиентской машине, а не на сервере. Вы можете использовать для этого <h:outputText>.

<h:outputText value="<script>alert('foo');</script>" escape="false" /> 

Вы даже можете получить его в качестве свойства компонента:

<h:outputText value="#{bean.script}" escape="false" /> 

escape="false" есть, чтобы предотвратить (по умолчанию) HTML-спасаясь от стоимости.

Смотрите также:

+0

Привет, я применил ваше решение. В моем случае это указывает на эту ошибку - Ошибка Parsing /viewMetadata/DynamicCss.xhtml: Ошибка Traced [строка: 28] Значение атрибута «значение», связанное с типом элемента «null», не должно содержать символ «<». –

+1

@ Kush: это действительно произойдет, если вы используете Facelets вместо JSP. Просто сбегите от нее вручную. См. Также, например. http://stackoverflow.com/questions/6883860/how-to-insert-special-characters-like-and-into-jsf-components-value-attribu/6883872#6883872 – BalusC