当前位置: 首页 > 知识库问答 >
问题:

使用ajax切换图像渲染?[副本]

张和颂
2023-03-14

如何根据由按钮触发的布尔状态变量显示图像?我不希望重新加载整个页面,而只是重新加载特定的图像。

Facelets页面:

 </h:form>
    <h:commandButton value="test" action="#{bean.toggleStatus}">
        <f:ajax render="image"/>
    </h:commandButton>
    <h:graphicImage id="image" value="status.gif" rendered="#{bean.status}"/>
 </h:form>  

背衬类:

    class Bean {

        private boolean status = false;

        public void toggleStatus() {
            status = true;
        }

        //getter, setter
    }

知道这里有什么问题吗?

共有1个答案

贺皓
2023-03-14

您不能ajax更新未呈现到超文本标记语言端的超文本标记语言元素。将其包装在始终呈现的组件中并更新它。

例如。

<h:form>
    <h:commandButton value="test" action="#{bean.toggleStatus}">
        <f:ajax render="image"/>
    </h:commandButton>
    <h:panelGroup id="image">
        <h:graphicImage value="status.gif" rendered="#{bean.status}"/>
    </h:panelGroup>
</h:form>
  • 当我想ajax更新它时,为什么我需要在另一个组件中嵌套一个渲染="#{一些}"的组件?
 类似资料:
  • 问题内容: 我检查了这个问题,它解决了我的最初问题。但是我不希望仅当用户单击链接时才显示部分视图,我希望在页面加载时显示部分视图,并且可能在加载部分视图时显示进度指示器。 如何实现? 非常感谢您阅读本文。 问题答案: 如果要加载页面,然后通过ajax加载部分视图,则可以创建一个执行以下操作的对象: 然后在您的页面中执行以下操作:

  • 问题内容: 我正在为我的第一个深度Pyglet项目开发2D Minecraft克隆,但遇到了一个问题。每当我在屏幕上有相当数量的块时,帧速率都会急剧下降。 这是我的渲染方法:我使用字典,键为元组(代表块的坐标),项为纹理。 我遍历整个字典并渲染每个块: PS sx和sy是屏幕滚动的坐标偏移 我想知道是否有一种方法可以更有效地渲染每个块。 问题答案: 我将尽力解释为什么以及如何在不真正了解代码外观的

  • 问题内容: 我在MVC应用程序中有此标记。 当它运行时,IngredientsListControl.ascx在浏览器中显示为新页面,并且不会更新Ingredientlistdiv。 这是我的控制器动作 我在这条线上做对了吗? 这就是我将控件呈现到div中的方式,以便它不会加载新页面。 马尔科姆 问题答案: 使用此功能时: …您应该注意,这与 它不会引发onsubmit事件,并且不会调用MVC的A

  • 我想在PDF上渲染图像,这将由FOP生成。为了渲染图像,我使用了标签< code > 我还尝试将完整的URL设置为: 在控制器中,我有一个请求映射,该映射从中获取图像名称 但是当我生成PDF时,我发现日志文件中的错误为: 但是,如果我复制这个URL并粘贴到URL中,那么图像会显示在浏览器中,我还发现,当我生成PDF时,应该调用图像解密的请求映射没有被调用。 更新 另外一个奇怪的想法是,我发现如果w

  • 基本图像渲染 外部资源渲染 摄像机 材质系统 材质资源 Effect 渲染组件参考 Sprite 组件参考 Label 组件参考 LabelOutline 组件参考 LabelShadow 组件参考 Mask 组件参考 MotionStreak 组件参考 ParticleSystem 组件参考 TiledMap 组件参考 TiledTile 组件参考 Spine 组件参考 DragonBones

  • 包括以下渲染组件: Sprite 组件参考 Label 组件参考 Mask 组件参考