【问题标题】:Get hidden value set by JavaScript in JSF backing bean获取JSF支持bean中JavaScript设置的隐藏值
【发布时间】:2011-04-11 02:28:56
【问题描述】:

我想在 JSF 支持 bean 中获取 JavaScript 值。我尝试了以下方法:

JSF:

<h:inputHidden id="fileName" value="#{TestBean.fileName}" />
<a4j:commandButton id="button" value="Send Mail" action="#{TestBean.send}" onclick="onCall()"/>

豆子:

public String send() {
    System.out.println("File Name: " + fileName);
}

JS:

function onCall(){
    //value changes dynamically everytime this function is called
    document.getElementById('case:fileName').value = '123';
}

此代码的问题是:它第一次在支持 bean 中获取空字符串 从第二次开始,它会在 java 脚本函数中获取先前生成的值。

我哪里出错了,我该如何解决?

【问题讨论】:

  • 这种替代方案适合您吗? value="#{fileName}" 设置值的 bean 属性使用 setPropertyActionListener 或将参数作为参数添加到您的方法 `#{send(fileName)}?

标签: javascript jsf ajax4jsf


【解决方案1】:

我刚刚尝试了这段代码,它在我的机器上运行良好。正如我所看到的,代码不是完全复制粘贴的,因为send() 方法存在错误。它声明了返回类型String,但它不返回任何东西。

也许您的错误出在您没有在此处复制的代码部分中。

【讨论】:

  • 我认为这是一条红鲱鱼。它至少与问题描述不匹配:“每次单击都会给出先前设置的值” :) 如果返回值确实丢失,则代码根本不会编译。顺便说一句,我经常看到a4j:commandButton 这样的问题,另请参阅this topic。如果再次出现这种情况,我不会感到惊讶。我会升级 RichFaces 或报告它。
【解决方案2】:

您需要使用 a4j 的 commandButton 和内部的 actionParam。参考这个答案:https://stackoverflow.com/a/10534779/268016

【讨论】:

    猜你喜欢
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    相关资源
    最近更新 更多