gpt4 book ai didi

javascript - 如何将支持 bean 值传递给 JavaScript?

转载 作者:行者123 更新时间:2023-12-02 17:26:27 24 4
gpt4 key购买 nike

我想读取 JSF 中的支持 bean 值,然后传递给 JavaScript,我可以知道如何做到这一点吗?

支持 bean 示例代码:

@ManagedBean(name="enquiry")
@SessionScoped
public class Enquiry {

public boolean noQuery;

/** getter and setter **/
}

在 XHTML 示例代码中,我想传递支持 bean 值,然后传递到 showNoQueryPrompt() 中,如下所示:

<h:commandLink onClick="showNoQueryPrompt(#{enquiry.noQuery})">
</h:commandLink>

然后在 JavaScript 代码中,我可以读取 bool 值来确定是否应该提示。这是代码:

<script ...>
var showNoQueryPrompt(Boolean showPrompt) {

if( showPrompt == "true" ) {
alert('No query');
}
}
</script>

最佳答案

就这一点而言,您需要了解 JSF 仅生成 HTML 代码,而 JS 是 HTML 的一部分。因此,您需要做的就是相应地编写 JSF/EL 代码,使其生成有效的 HTML/JS 代码。事实上,像您的尝试一样,使用 EL 在生成的 JavaScript 代码中内联 bean 属性是正确的方法之一。

假设这确实是真实代码,但是您犯了一些语法错误。 onClick 属性无效。它必须全部小写。否则 JSF 根本不会呈现该属性。

<h:commandLink value="link" onclick="showNoQueryPrompt(#{enquiry.noQuery})" />

JavaScript 没有强类型的概念。函数参数中的 Boolean 类型无效。去掉它。否则你将面临一个很好的 JS 语法错误(在浏览器的 JS 控制台中)。

function showNoQueryPrompt(showPrompt) {
if (showPrompt) {
alert('No query');
}
}

请注意,我希望您明白这是在调用 commandlink 自己的 action 之前运行的(您现在应该已经理解;JSF 生成 HTML;在浏览器中右键单击页面并查看源代码亲自查看)。但是您没有在具体问题中涵盖这一点(更重要的是,您根本没有描述问题中给定代码的具体问题),所以我无法对此给出详细答案。

关于javascript - 如何将支持 bean 值传递给 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13049745/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com