相关疑难解决方法(0)

有条件地显示JSF组件

首先,我是Java EE的新手,来自强大的ASP .NET开发背景.我已经浏览了网络,我可能会错过这个,但似乎没有关于如何将支持bean类连接到JSF组件的简单直接的教程.

一个很好的例子是这样的,目前我正在尝试创建一个JSF页面,其中有一组链接作为菜单栏和一组表单.我打算做的是,当点击一个链接时,将呈现一个特定的表单.

在ASP.NET中,我可以轻松检索元素,然后将属性设置为可显示.我想知道在JSF中是否有简单的方法(哎呀,甚至任何方式).

表单已经在页面中,只需在单击特定链接时将"render"属性设置为true即可.

jsf components conditional-rendering

76
推荐指数
2
解决办法
16万
查看次数

实体名称必须紧跟实体引用中的"&"

我想在我的*.xhtml页面上放一个打包游戏.(我使用的是jsf 2和primefaces 3.5)

然而,

当我在xhtml中"翻译"html页面时,我在此脚本中收到错误:

    <script>

    var el = document.getElementById("pacman");

    if (Modernizr.canvas && Modernizr.localstorage && 
        Modernizr.audio && (Modernizr.audio.ogg || Modernizr.audio.mp3)) {
      window.setTimeout(function () { PACMAN.init(el, "./"); }, 0);
    } else { 
      el.innerHTML = "Sorry, needs a decent browser<br /><small>" + 
        "(firefox 3.6+, Chrome 4+, Opera 10+ and Safari 4+)</small>";
    }
  </script>
Run Code Online (Sandbox Code Playgroud)

在线:

if (Modernizr.canvas && Modernizr.localstorage && 
Run Code Online (Sandbox Code Playgroud)

我得到:

实体名称必须紧跟实体引用中的"&".

知道怎么解决这个问题吗?

javascript xml xhtml jsf facelets

74
推荐指数
4
解决办法
17万
查看次数

是否可以将JSF + Facelets与HTML 4/5一起使用?

Facelets依赖XML命名空间来使用XHTML.HTML 4如何,据我所知,HTML 5不支持名称空间.HTML 5还有一些XHTML中没有的新元素.甚至HTML 4和XHTML在它们支持的元素和属性方面也存在一些差异.

问题是:是否可以使用Facelets呈现HTML 4/5文档?如果是这样,怎么样?

xhtml jsf html5 facelets jsf-2

65
推荐指数
2
解决办法
3万
查看次数

如何在Facelets模板中引用CSS/JS /图像资源?

我已经完成了关于Facelets模板的教程.

现在我尝试创建一个与模板不在同一目录中的页面.我有页面样式的问题,因为样式用相对路径引用,如下所示:

<link rel="stylesheet" href="style_resource_path.css" />
Run Code Online (Sandbox Code Playgroud)

我可以通过以下开头使用绝对引用/:

<link rel="stylesheet" href="/project_root_path/style_resource_path.css" />
Run Code Online (Sandbox Code Playgroud)

但是,当我将应用程序移动到不同的环境时,这将给我带来麻烦.

所以我想知道在Facelets中引用CSS(以及JS和图像)资源的最佳方法是什么?

resources jsf facelets templating jsf-2

53
推荐指数
2
解决办法
6万
查看次数

如何在RichFaces/JSF页面中嵌入和调用javascript脚本

我一直在寻找一种在JSF页面中嵌入和调用javascript函数的方法.我也在使用RichFaces.

要定义该功能,似乎我可以跨浏览器支持的方式执行此操作:

        <a4j:outputPanel ajaxRendered="true">
        <f:verbatim>
            <script type="text/javascript">
                function datum() {
                    alert("hi");
                }
            </script>
        </f:verbatim>
    </a4j:outputPanel>
Run Code Online (Sandbox Code Playgroud)

但我不确定如何在页面加载时调用此函数,以便返回的文本嵌入到h:outputPanel.计划是在页面中嵌入一个js时钟,然后提供给客户端.注意我没有使用body标签,我正在使用facelets ui:composition,f:view(core)和RF RI rich:page.

谢谢

javascript jsf richfaces

4
推荐指数
1
解决办法
1万
查看次数

jsf的xthml文件中的javascript中的不等号("<")引发错误(在netbeans中)

可能重复:
javax.servlet.ServletException:错误解析/page.xhtml:元素的内容必须包含格式良好的字符数据或标记

这是一个jsf 2.0项目.

xhtml文件:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>Ring</title>
        <h:outputScript library="js" name="jquery-1.8.1.min.js" />
        <h:outputScript library="js" name="processing-1.4.1.js" />

        <script type="text/javascript">
            $(function(){
                var pjs = Processing.getInstanceById("viz");
                var json = #{TableMatchesBean.json};
                var data = eval("("+json+")");
                if(data) {

                    for(i=0; i<data.segments.length; i++) {
                        var segment = data.segments[i];
                        pjs.addSegment(segment.label, segment.count,segment.isMain);
                    }
                }
            }); //end ready
        </script>

    </h:head>
    <h:body>

        <canvas id ="viz" data-processing-sources="common.pde"></canvas>

    </h:body>
</html>
Run Code Online (Sandbox Code Playgroud)

在javascript的for循环的第一行,

for(i=0; i<data.segments.length; i++) {
Run Code Online (Sandbox Code Playgroud)

Netbeans引发了这个错误:"致命错误:元素类型"data.segments.length"必须后跟属性规范,">"或"/>"."

此错误表明"<"被解释为某些xhtml,而不是js(我认为).这是Netbeans的错误还是js和xhtml之间确实存在混淆?

javascript xhtml jsf netbeans

4
推荐指数
1
解决办法
6730
查看次数

未在 &lt;script&gt; 块内解析 JSF 组件

我不得不更改<script> ... </script>JSF 页面中的 a 并尝试评估脚本内的 JSF 组件。EL 已评估,但标签本身未受影响。

这种行为的原因是什么?

例子:

<script type="text/javascript">
    //<![CDATA[
        function doSomething() {
            $('.userNode').droppable({
                activeClass : 'ui-state-active',
                hoverClass : 'ui-state-highlight',
                tolerance : 'intersect',
                drop : function(event, ui) {
                   <h:panelGroup rendered="#{myBean.useThis}">
                     alert("code A");
                   </h:panelGroup>
                   <h:panelGroup rendered="#{!myBean.useThis}">
                     alert("code B");
                   </h:panelGroup>
        }
            });
        };
    //]]>   </script>
Run Code Online (Sandbox Code Playgroud)

EL#{!myBean.useThis}被评估为真/假,但<h:panelGroup>在渲染结果中。

为什么?

javascript jsf facelets

4
推荐指数
1
解决办法
948
查看次数

JSF 2.2 CDATA 被转义

升级到 Mojarra 2.2.3 后,我发现了一些奇怪的行为。以下 Javascript 声明被破坏:

在 .xhtml 文件中:

<script type="text/javascript">
<!-- /* <![CDATA[ */
    $(document).ready(function() {                                                                             
        if ($('#some_identifier').size() > 0) 
        ...
/* ]]> */-->
</script>
Run Code Online (Sandbox Code Playgroud)

这被混淆成以下废话:

<script type="text/javascript">
<!-- /* &lt;![CDATA[ */
    $(document).ready(function() {
        if ($('#some_identifier').size() &gt; 0)
        ...
/* ]]&gt; */-->
</script>
Run Code Online (Sandbox Code Playgroud)

这会破坏 .xhtml 文件中嵌入的所有 javascript 代码。我确认我们之前使用的版本 (2.0.x) 不会发生这种情况,所以我必须假设它与新的 Mojarra 版本有关。关于如何解决此问题或解决此问题的任何想法?

facelets cdata jsf-2 jsf-2.2

3
推荐指数
1
解决办法
5989
查看次数