无法在服务器中进行简单的显示丰富的表面

时间:2013-02-25 19:34:02

标签: java jsf jboss richfaces

你可以帮我吗?我做了这个请求作用域的托管bean,但当我点击sayHello时,在日志的控制台中它显示只有你好,即使我在字段“chaine”中放置一个值

public class BackTheme {


private String chaine;

public BackTheme() {

}

public void sayHello(){
    System.out.println("hello "+chaine);
}

public String getChaine() {
    return chaine;
}

public void setChaine(String chaine) {
    this.chaine = chaine;
}
}

HTML代码如下:

<div class="gt-form gt-content-box"> 
    <h:inputText  value="#{backTheme.chaine}" />
    <h:form >        
     <a4j:htmlCommandLink actionListener="#{backTheme.sayHello}" value="Download"/>
    </h:form>

2 个答案:

答案 0 :(得分:2)

提交表单时,只会提交表单中包含的数据。但是,您的输入组件位于表单之外,因此不会在表单提交中使用其值。如果要将其值发送到服务器,输入组件应与命令按钮/链接的形式相同。

<h:form>        
  <h:inputText value="#{backTheme.chaine}" />
  <a4j:htmlCommandLink actionListener="#{backTheme.sayHello}" value="Download"/>
</h:form>

对具体问题

无关,我不确定这一切的具体功能要求是什么,但我只是警告说,使用ajax下载单个文件是不可能的。你的命令链接就是标签“download”,它表示你正在尝试下载文件的真实代码。也许这只是粗心大意,但你永远不知道;只是在说'。如果情况确实如此,请将<a4j:htmlCommandLink>替换为<h:commandLink>,以便成功下载文件。另请参阅How to provide a file download from a JSF backing bean?

答案 1 :(得分:1)

你的inputText需要在表单中。