Java代码中的inputText

问题描述:

我试图包括在我的JSF页面中的Java代码到的inputText的价值,但根据TLD错误发生Java代码中的inputText

或属性指令在标签文件属性值 不接受任何表达式

这是我的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> 

隐而不宣的工作或者与双引号或没有 如何解决这个问题吗? 非常感谢您

+0

您是否尝试过类似'value =“#{yourBean.property}”''的Java EL表达式? - 您可能必须创建一个bean来获取该系统属性。 – Thomas

+0

JSF的哪个版本是? – Bozho

+0

谢谢你们两位,问题解决了! – ulquiorra

的问题是这行代码:

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

JSF使用表达式语言来填充/从JavaBean读值/。您必须创建一个POJO操作(称为ManagedBean),其变量为property并将其链接到那里。

例如

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实例呈现此。

+0

非常感谢,它完美的作品! – ulquiorra