Java-код в inputText - PullRequest
       12

Java-код в inputText

0 голосов
/ 29 августа 2011

Я пытаюсь включить код Java в значение inputText на моей странице jsf, но возникает ошибка

согласно директиве tld или attribute в значении атрибута файла тега не принимает выражения

Вот моя jsf-страница.

<%@ page contentType="text/html" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="html" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="core" %>
<%@ page language="java" %>
    <core:view>
    <html:form>
        <html:outputLabel value="Informations " style="FONT-SIZE: xx-large;"/>
        <br />&nbsp;
        <br />

        <%
final String property=System.getProperty("jboss.server.home.dir");
 %>
    <html:outputLabel value="Répertoire de configuration:  " />&nbsp;&nbsp;
<html:inputText value='<%=property%>'/>

    </html:form>
    </core:view>

Не работает ни с двойной кавычкой, ни с чем Как решить эту проблему, пожалуйста? Большое спасибо

1 Ответ

4 голосов
/ 29 августа 2011

Проблема с этой строкой кода:

<html:inputText value='<%=property%>'/>

JSF использует язык выражений для заполнения / чтения значений в / из JavaBean. Вам нужно будет создать действие POJO (называемое ManagedBean) с переменной property и связать его там.

1007 * Е.Г. *

public class ConfigurationAction {

    private String property = System.getProperty("jboss.server.home.dir");

    /**NOTE: MUST create a getter and setter. **/
    public String getProperty() {
        return property;
    }

    public void setProperty(String property) {
        this.property = property;
    }
}

Не забудьте сопоставить ManagedBean. В JBoss Seam вы просто добавите аннотацию @Name над классом, например, @Name("configurationAction").

Наконец, визуализируйте это в JSF с языком выражений (EL)

<html:inputText value="#{configurationAction.property}"/>

Где configurationAction - это имя вашего ManagedBean, а property - это экземпляр ManagedBean.

...