Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将托管bean属性打印为JavaScript变量_Javascript_Jsf - Fatal编程技术网

将托管bean属性打印为JavaScript变量

将托管bean属性打印为JavaScript变量,javascript,jsf,Javascript,Jsf,我正在尝试将java字符串返回值打印到脚本java中。 这是我在java类中的方法 public static String getchamps (){ //Bdconnection class String str; { str = "date" ; } return str ; } 问题是我怎么能有这个代码 <script type="text/javascript" > "date" </script>

我正在尝试将java字符串返回值打印到脚本java中。 这是我在java类中的方法

public static String getchamps (){ //Bdconnection class
    String str;
    {
        str = "date" ;
    }

    return str ;
}
问题是我怎么能有这个代码

<script type="text/javascript" >
    "date"
</script>

“日期”
执行以下操作:

<h:inputText id="propertyId" value="#{Bdconnection.str}" />

在本文中,您应该将JSF视为HTML代码生成器。您可以使用JSF标记/组件和EL表达式来生成所需的HTML输出。由于JavaScript在技术上是HTML(而不是JSF!)的一部分,因此可以对JavaScript执行同样的操作

一旦您修复了错误的静态方法,以真正符合Javabeans规范,如下所示:

public String getChamps() {
    return "date";
}
<script>
    var champs = "#{bean.champs}";
</script>
然后,您可以让JSF将其打印为一个JS变量,如下所示:

public String getChamps() {
    return "date";
}
<script>
    var champs = "#{bean.champs}";
</script>

var champs=“#{bean.champs}”;
要验证结果,只需在webbrowser中打开JSF页面并右键单击查看源代码。您应该看到类似的内容:

<script>
    var champs = "date";
</script>

var champs=“日期”;

但是要注意字符串中的JS特殊字符!如果字符串包含双引号甚至换行符,则此操作将失败。如果是这种情况,那么您最好使用EL函数来逃避它,如下面的答案所示:。

您的问题是什么?你的解决方案有什么问题吗?问题不完整我添加了问题请在下面找到答案我想从我的类而不是从输入文本获取Bdconnection.str如果你想访问字符串,你必须将它存储在会话中,或者你可以使用Bean.to complex作为原始问题的解决方案,并且不容易重构(通过IDE)等.#{bean.champs}我的类是import javax.faces.bean.ManagedBean;@ManagedBean公共类Bdconnection{public String str=“date”;public String getchamps(){return str;}我试过#{Bdconnection.str但是不起作用只是完全按照答案中的例子。你的方法名称仍然错误,你在EL中引用属性的方式仍然错误。答案显示了正确的方式。我不确定你为什么一直尝试用不同的方式做事情。如果你无法详细说明“不起作用”对于开发人员来说,我建议暂停一下,把这一切放在一边,仔细阅读一本理智的JSF书籍,以正确地掌握基本概念。然后,一旦你完成并回到这一切,你肯定会很快发现你的错误。它终于起作用了。谢谢你,事实上,我在我的bean中遇到了一个问题!非常感谢