问题标签 [viewparams]
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 - 如果位于 template.xhtml 中,JSF f:viewParam 不调用 setter
也许有人可以启发我。
如果放
在模板内,setter
远不会被调用,即 preRender 方法“call()”在没有事先调用 setter 的情况下被调用(参见下面的代码示例以供参考)。但是,如果将元数据块放在合成中,它会按预期调用。
这是正常行为还是我做错了什么?
非常感谢您的任何见解。
汉斯彼得
作为参考,这里是非工作版本的完整代码示例:
测试模板.xhtml
testcomposition.xhtml
这里是工作版本的完整代码示例:
测试模板.xhtml
testcomposition.xhtml
jsf-2 - 如何使用请求参数导航?
我想从一个页面导航到另一个页面,比如从page1
withbean1
到page2
with bean2
。我需要从 to 传递一些bean1
参数bean2
。
我想了解如何使用for@ManagedProperty
参数和<f:viewParam>
. 比如说,我有,并且可以在getter和setter 中使用。我的理解是,我必须在元数据中定义视图参数:<f:metadata>
page2
field1
field2
field3
bean1
bean2
page2
像
我不确定在哪里使用注释@ManagedProperty
来定义参数field1
, field2
and field3
, in bean1
or bean2
。
我page1
可以使用"page2?faces-redirect=true&includeViewParams=true"
我可以在我的一种方法中使用相同的方法,而不是在page1
响应提交命令链接时说吗?
page1
如果我需要在和中都有这三个字段page2
,我可以定义那些隐藏字段吗?
java - viewParam 不能与 @RequestScoped bean 和 ajax 事件一起使用吗?
在阅读了 stackoverflow 中的一些问题和答案(比如这个ViewParam vs @ManagedProperty(value = "#{param.id}"))后,我不确定是否可以使用viewParam
bean@RequestScoped
和 ajax 事件。正如您在@BalusC 的回答中看到的那样:
可以在 @RequestScoped bean 上使用,但如果您希望 > 视图参数在任何验证失败中幸存,它要求 bean 是 @ViewScoped。
我认为可以f:viewParam
与@RequestScoped
bean 一起使用,同时在验证失败后保留视图参数,我的意思是,你根本不需要@ViewScoped
bean。
可能使用@ViewScoped
bean 的必要性与这个规范问题有关,不是吗?
http://java.net/jira/browse/JAVASERVERFACES-1532
根据该问题,该解决方案仅适用于 JSF 2.2。
jsf-2 - JSF bean:设置 ViewParam 后调用 @PostConstruct 函数
我有一个 product.xhtml 和一个 ProductBean。我使用 /product/{id} 来访问产品,因此我在 product.xhtml 中有一个 viewParam,其 value=ProductBean.id。问题是在 bean 内部,我使用带有 PostConstruct 注释的 init 函数来填充产品的详细信息。为此,我需要 id 来调用外部函数。我想尽管在 viewParam 设置 bean 的 id 之前调用了 init,因此在 init 内部我无法调用外部函数,因为 id 尚未设置。我做错了什么,我该如何解决这个问题?
更新
我发现出了什么问题。我认为 viewParam 方法适用于 CDI bean,但 ManagedProperty 方法适用于 JSF bean..
我现在还有另一个问题。我的 CDI bean 是 RequestScoped,当 product.xhtml 被渲染时,bean 被创建,我猜后来被丢弃了。有趣的是,我在该 bean 中有一个函数,当我调用它时,我可以读取 id(我假设这是因为连接到视图参数而发生的),但不能读取任何其他属性。任何想法如何解决这一问题?
jsf-2 - 发布后在 JSF 中处理视图参数
我有几个页面需要 userId 才能工作,因此下面的代码:
用户页面.xhtml
用户页面控制器.java
但是调用doAction之后,url中的view参数就消失了。由于其视图范围的性质,该 bean 仍然有效,但它破坏了我未来导航的尝试。当我四处搜索时,我得到的印象是视图参数应该在帖子之后保留,因此读取 userpage.jsf?userId=123,但事实并非如此。真正的预期行为是什么?
与此相关,我尝试在导航到要保留 userId 的另一个页面时实现视图参数的自动添加。它似乎对其他人有用,但对我来说, ViewRoot 中的 userId 始终为空。下面的代码用于检索视图参数(我知道我可以使用 bean 中临时存储的 userId 进行导航,但这个解决方案会更漂亮):
最后一个想法是 setter 方法似乎仍然有效, setUserId 在发布时使用正确的值调用。
我是否完全误解了视图参数的工作原理,或者这里是否存在某种错误?我认为我的用例应该非常普遍,并且在框架中有基本的支持。
java - f:viewParam 在调用第二个 ajax 请求时出现 Converter 和 ViewScoped 异常
我有这个f:viewParam
,我尝试绑定 validate 并将 a 转换userId
为Player
,我得到了意想不到的结果。
我的转换器看起来像这样
当我单击三个链接(Harry、Tom、Peter)时,转换器工作得很好。它转换 id 并将player
回绑定到我的托管 bean。然后我在文本框中输入一些东西,然后单击Switch
,第一次它工作正常,我输入的内容出现在按钮旁边,但后来我更改了我输入的内容,Switch
再次单击,然后出现错误消息Bad Request. Please use a link from within the system
,这是错误消息为. required
_ f:viewParam
如果我把 f:viewParam 拿出来,那么一切正常。令人惊讶的是,如果我从 f:viewParam 切换到 o:viewParam (OmniFaces),那么效果很好。
jsf-2 - 当 URL 中没有参数时,将 f:viewParam 属性设置为 null
假设我们有一个接受一个参数的简单页面:
当用户转到 时http://localhost/myapp/?name=Joe
,则#{bean.name}
设置为Joe
。然后,如果用户转到http://localhost/myapp/
or http://localhost/myapp/?something=Else
,则#{bean.name}
仍设置为Joe
,但我希望它是null
。如何做到这一点?
jsf - 在其他字段之前将请求值应用于从 inputHidden 加载 id 的实体 bean
我有一个 facelet 模板:
和一个请求范围的bean:
初始页面加载效果很好,实体加载并显示在表单中,inputHidden 设置为实体 id。问题是提交抛出:
可能是因为 getUser 在 setId 之前被调用。我该如何解决这个问题?我真的很想拥有一个请求范围的 bean,我知道这可以通过至少 viewaccess 范围的 bean 轻松解决。
编辑:现在我注意到在流程验证阶段引发了异常,我最初认为在更新模型值阶段引发了异常。我将“private User”改为“private User user = new User()”,现在可以了,但感觉有点奇怪。
问候, 帕维尔
jsf - f:param 和 f:viewparam 设置器未调用
我有一个 xhtml 页面,其中有一个带有 f:param 的输出链接
<h:outputLink value="#{formService.getStartFormData(v_process.id).formKey}">
Start
<f:param name="processDefinitionKey" value="#{v_process.key}"></f:param>
</h:outputLink>
在目标页面中,我有查看参数
我的豆是
processDefinitionKey 为 null ,setter 没有被调用,怎么回事?web.xml 或 faces-config.xml 中是否有任何配置要添加?在同一个项目中,我使用 primefaces 和 spring security
这是整个页面
谢谢回复,请问这个没用
ajax - 动态包含的页面表单首次提交失败
我在动态包含的页面上有一个奇怪的行为
我的第一页有一个组合可以从不同的页面中选择,包括:
AnyPageBean 只返回以下 2 个页面之一:pilotNoTemplate.xhtml 或 pipo.xhtml
当我选择该页面(pipo 页面)时,pilotNoTemplate.xhtml 正确显示。
但是当我从 PilotNoTemplate.xhtml 提交表单时,JSF 认为提交作为 POST 是可以的,但只有 Phase1 和 Phase 6 是跨越的,为什么?我有一个 PhaseListener 显示阶段,它打印:
如果表格中填写了任何内容,它将被重置...
第二次提交没问题,所有阶段都跨越:
我的模板页面:
合成页面,可以选择要包含的页面:
PilotNoTemplate.xhtml 页面:
我注意给 xhtml 页面中的每个组件都赋予“id”,因为没有它就会出现这种问题,在我的情况下似乎是不够的。任何想法 ?
我看到其他人也有同样的问题,你找到解决办法了吗?