问题标签 [rendered-attribute]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jsf - 如何有条件地呈现 f:selectItem 标签?
如何为<f:selectItem>
标签指定条件渲染。我需要<f:selectItem>
根据特定用户的状态显示选项。
例如,我想要类似的东西:
jsf - JSF/Facelets/JSTL 条件显示最佳实践
我有几个关于使用 JSF/JSTL/Facelets 时的最佳实践的问题。
我有一个 JSF 页面,看起来像上面的代码。假设此循环返回 10 个结果,并且对于每个结果,只有 1 个条件评估为真。因此,一旦加载,用户将在 html 页面上看到 10 个结果。
尽管只有 10 个项目会在 html 中显示,但组件树将包含 40 个项目,它会包含那些被渲染为 false 的项目。上述行为是否准确?
如果 1 为真,并且我们在组件树中可能有很多隐藏的组件,这是一个性能问题,假设它是 400 个项目而不是 40 个?
在 Faceletes 或 JSF 中是否有条件标记处理程序,其行为类似于 c:if 并且不会在树中包含组件?还是我应该使用 c:if 作为最后的手段?我试图避免使用 JSTL。
谢谢。
jsf - 根据查询字符串的存在(或根本没有查询字符串)有条件地呈现 JSF h:panelGrid
我正在尝试根据查询字符串的存在或不存在查询字符串来动态呈现一些组合/模板。例如:
本地主机:9080/myWonderfulApp/test.xhtml?foo=bar
这行得通,A.xhtml 被拉进来。
本地主机:9080/myWonderfulApp/test.xhtml
这不起作用,B.xhtml 不会被拉入。
我遇到了缺少查询字符串部分的问题。当我传递 ?foo=bar 时,我可以渲染 A.xhtml,但是当我没有查询字符串时,我似乎无法渲染 B.xhtml。我尝试了一些变化,我最初认为 #{param['foo'] != 'bar' 会起作用,但我认为这不起作用,因为我根本没有 foo 查询参数。我试过检查 param == null 但这也没有用。
是否可以根据 NO 查询字符串设置我的渲染属性?
我不能只为 B.xhtml 设置另一个查询字符串,因为我正在开发一个具有 2 种不同皮肤的旧版应用程序,因此改造所有链接的旧应用程序不是一种选择。新应用将使用查询字符串,旧应用需要在没有查询字符串的情况下获取旧皮肤链接。
这似乎也不起作用:
jsf - JSF:为什么在请求范围的 POST REDIRECT GET 下的表单提交期间在应用请求值阶段调用了空测试
这个问题是从对 JSF2 的部分回答中产生的:为什么复合中 panelGroup 呈现的空测试会阻止调用操作?
在下文中,元素是具有名称和 id 的 @Entity。view.xhtml JSF 页面将 id 作为 viewParam 并使用 @ManagedBean @RequestScoped ElementController 的 setID(Long id) 来触发从数据库中通过 id 加载相应的元素(这在问题中没有进一步的作用)并且发现元素设置为可用的“当前”元素(由于历史原因,名称略有不同),如 Element getSelected()。
view.xhtml 页面执行渲染属性测试#{not empty elementController.selected},并具有 ah:commandButton 和执行 faces-redirect 的操作,以及作为查询参数的 id,返回到 view.xhtml 页面。
出于某种原因,我不完全理解,在提交表单时,在应用请求阶段和流程验证阶段都会调用测试(因此 getSelected),然后才能设置 viewParam id(因此在当前/选定元素可以之前)被找到并设置)在更新模型值阶段。
大大缩写的 view.xhtml 页面是:
(上面失去了表单提交的意义,但对这个问题来说无所谓。)
ElementController 扩展了 RequestController:
现在在提交表单时,getSelected() 碰巧被调用了两次,当 current==null 时,一次是在应用请求值阶段,一次是在流程验证阶段,因为之前的测试 #{not empty elementController.selected}由于 view.xhtml 中的 viewParam,可以设置 id(以及因此加载 Element 实体)。
问题是,为什么在应用请求阶段和流程验证阶段完全调用了 render=#{not empty elementController.selected} ?
当我使用 id 参数执行 view.xhtml 的初始 GET 加载时,不会在这些阶段调用它,仅在表单提交 POST 和后续重定向和 GET 期间调用。
jsf-2 - 带有 EL 2.2 的 JSF 2.x 为何允许将 MethodExpression 用于 ValueExpression?
我看到几个问题询问如何将参数传递给 JSF 方法。使用 EL2.2 和 servlet 3.0,它使用户能够将参数传递给方法调用。一个例子:如何将参数从渲染的 h:outputText 传递给方法?问题是:在 JSF 2.x 中,每个标记属性都应该采用 ValueExpression 或 MethodExpression。在链接的示例中,“rendered”应该只采用 ValueExpression。但是,我确实看到它仍然可以与 MethodExpression 一起使用,如果我们放置 () 以明确它是一个方法调用而不是一个属性。这是 JSF 2.x 规范刚刚搞砸的东西还是我遗漏了什么?
jsf-2 - JSF 渲染属性
我有几个面板组,一个带有“注册”和“登录”链接,另一个带有“注销”链接。当我登录时,只有“登录”链接消失,“注册”保持呈现,而“注销”永远不会呈现。#{user.loggedIn}" 在用户登录时返回 true。在调试模式下刷新屏幕时,我可以看到该方法正在运行。有关如何使其正常工作的任何建议。代码应该是解释性的,如果不是,请告诉我。
javascript - 如何根据来自 javascript 的值在 ui:repeat 中渲染 ah:panelGroup?
我将布尔值放入 中,<h:inputText>
但我找不到将其rendered
放入<h:panelGroup>
. 我也看不到使用 bean 值的方法,因为每次迭代都需要一个独立的迭代。
这是我的jsf代码:
这是我的 javascript:
jsf - 条件渲染 f:selectItem 可能出现的问题
我有一个包含多个h:selectOneMenu
or的页面p:selectOneMenu
,我想使用同一个页面来编辑和添加数据。当我将编辑我需要的数据时f:selectItem
。我知道这个组件没有渲染属性。我读到我可以使用<c:if>
.
好的。例如,如果我写
它会在 primefaces 和 ajax 监听器中正常工作吗?
jsf - JSF 渲染多个组合条件
我需要给出类似的条件
在 JSF 渲染属性中。
任何人都可以帮忙吗?
jsf - Ajax 更新/渲染不适用于具有渲染属性的组件
我正在尝试对有条件渲染的组件进行 ajax 更新。
但是,这是行不通的。我可以保证这#{user}
实际上是可用的。这是如何引起的,我该如何解决?