问题标签 [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.

0 投票
0 回答
68 浏览

jsf - 从 UIViewParameter 检索转换器属性表达式

我需要为 JSF 没有内置解决方案的视图参数创建一个依赖转换器。

在此示例bar中依赖于foo.

@PostConstruct转换后的值bean.foo尚不可用,但我可以手动检索请求参数barConverter通过执行 el 查找。

现在我尝试通过解析来获取转换器UIViewParameter,但它的转换器实例为空,因为尚未由 JSF 生命周期设置(为什么?如果转换器范围更广,它应该是安全的)。所以我想获得 el 表达式来查找转换器以执行类似的操作(以减少对上面 DRY 进行硬编码的需要)

JSF 应该处理对依赖转换器的支持,例如在每个UIViewParameter转换器实例化之后调用的一些迭代生命周期 bean 事件。

0 投票
0 回答
17 浏览

jsf - myfaces 2.1.17 - f:viewParam setter 在 commandlink 上被调用

在 JSF2.0 中,当按下(发布)commandlink 时,是否应该再次调用 f:viewParam 设置器?在 myfaces 2.0 中,它不会再次调用 viewParam 设置器,但在 myfaces 2.1 中,它是。这个对吗?有没有办法全局禁用它?

0 投票
1 回答
1028 浏览

jsf - ExternalContext#redirect() with includeViewParams=true

使用字符串形式的货币列表,如下所示。

沿着一个<p:remoteCommand>.

<p:remoteCommand>设置货币值的托管 bean作为参数通过上述方法传递给 JavaScript 函数。

然后将提供的货币值CurrencyRateBean从上面的操作方法中设置为另一个会话范围的托管 bean currencyAction(),最终根据当前值进行重定向viewIdincludeViewParams=true这很重要。


现在,故事发生了变化,什么时候#{currencyRateBean.currencies}已更改为具有复合对象列表,到目前为止,该列表一直是字符串列表。

以下场景将不适用,includeViewParams=true这很重要。

includeViewParams=true已添加仅用于装饰。这是行不通的。

由于listenerin无法根据of<p:ajax>完成的导航案例结果进行重定向,因此无论如何都必须使用。action<p|h:commandXxx>ExternalContext#redirect()

<p:remoteCommand>可以在完成时使用,<p:ajax>但这将不必要地涉及到服务器的两次往返,首先将货币值设置为关联的托管 bean,然后进行重定向。

如何includeViewParams=true在给出的示例中进行重定向?

0 投票
0 回答
71 浏览

jsf - Bean 属性仅在页面刷新后加载

officeProductionBean.officeName 仅在我手动刷新页面后加载。我在 Primefaces 5.3 中使用 @Managedbean 和 @SessionScoped 注释。

xhtml page 从另一个页面传递的值

办公室生产豆

0 投票
0 回答
18 浏览

jsf-2 - 如何使视图参数在@RequestScoped bean 的视图中包含的表单引起的任何验证失败中幸存下来?

索引.xhtml:

结果.xhtml:

托管豆:

击球时http://localhost:8080/Leonard/faces/ch2/index.xhtml?playernameparam=FARHAN&playersurnameparam=ANSARI

在此处输入图像描述

将“验证目的”字段留空以触发验证失败

然后按下按钮。

现在在同一字段中输入一些内容,然后再次按 Enter。

它工作得很好,视图参数在那里,重定向的 url 反映为:

http://localhost:8080/Leonard/faces/ch2/results.xhtml?playernameparam=FARHAN&playersurnameparam=ANSARI

当然它会像豆子一样@ViewScoped

但是我的 bean 是 @RequestScoped,这导致了问题。我在验证失败时丢失了它们,然后在使用 POST 请求删除验证错误后进行后续 POST,从而产生以下结果:

在此处输入图像描述

那么,问题归结为如何保留请求参数?

0 投票
1 回答
100 浏览

jsf - f:viewParam bean 属性在通过 Converter 提交时重新创建

我有以下 JSF 页面。我id作为参数传递给它,转换器使用该 ID 在支持 bean 中创建对象。这个页面基本上是编辑数据库中的现有记录。当按下保存时,我的roleInformation对象是使用转换器重新创建的,因此没有设置新的namedescription来自inputtext的,我该如何修复它?单击时如何防止Converter插入新的?roleInformationcommandButton

更新

角色信息接口

角色转换器

0 投票
1 回答
212 浏览

validation - 发送 HTTP 400 错误时@NotNull 属性失败

我正在创建一个需要 GET 参数来显示数据的 JSF 2.2 页面,但我很难强制执行该参数。

我也尝试使用Omnifaces 的 viewParam没有成功,我不知道该尝试什么了。

我也在这个链接上发现了一个类似的问题,我尝试了所有的建议......

当我打开:

  • http://url-to/required-test.xhtml?test=foo

它工作正常,Param is: foo显示。

但是当我打开时:

  • http://url-to/required-test.xhtml?test=
  • http://url-to/required-test.xhtml

Param is: null!显示而不是验证错误消息。并且null!仅显示,因为我仅为此测试添加了一个特殊的 outputText,在实际应用程序中,它会在某处导致 NullPointerException。

如何使required属性启用<f:viewParam /><o:viewParam />工作?

我的测试代码:

需要-test.xhtml

必需的TestBean.java

web.xml上的上下文参数

0 投票
0 回答
119 浏览

jsf - 当 f:viewParam 是调用者时,为什么在调用 setter 之前调用属性调用者的 getter?

抱歉标题不好,请随时编辑。

所以我有这段代码:

所以当点击时,我会在goodbye.xhtml结束,它的代码如下:

所以当我有 BlahBlah.java 如下:

我会在 goodbye.xhtml 上看到test_one_modified很好。

但是当我如下修改 BlahBlah.java 时:

我期望再次看到test_one_modified但我会得到一个不错的Null Pointer Exception

是不是

应该设置BlahBlah.parameter?

0 投票
0 回答
631 浏览

forms - JSF 如何提交表单并将值作为 GET 参数传递到另一个页面?

嗨,我看到 BalusC 的这个回答为实体创建主详细信息页面,如何链接它们以及选择哪个 bean 范围

我正在寻找一种将输入值作为请求 GET 参数传递的方法。假设我有一个带有如下搜索表单的 page1:

并有第二页(page2)来显示这个人的数据,如下所示:

我的问题是如何将 page1 的输入值作为 GET 请求参数传递给 page2,这样我就可以在 page2 中拥有书签功能。提前致谢。对不起我的英语不好 :)

0 投票
1 回答
273 浏览

jsf - 将请求参数注入视图范围的 bean(不同的 portlet)

我试图传达两个视图,portlet-A 中的第一个视图和 portlet-B 中的第二个视图(同一个 .war 中的两个 portlet)。为此,我决定使用 JSF 'f:viewParam' 和 'f:param' 特性将属性(来自 portlet-A 视图)注入请求对象,以便 portlet-B 视图可以从请求对象中检索它并将此类属性值传递给视图范围的支持 bean 属性。

Portlet-A 查看代码:

JS代码:

请注意,portlet-B 视图必须显示在基于 Liferay 的页面上,与显示 portlet-A 视图的页面不同。

Portlet-B 查看代码:

当显示 portlet-B 时,浏览器地址字段设置为“ http://host:8080/viewer ”,并且标签呈现为“0”(零)。

我不知道我执行目标任务的方式是否正确。但如果是,我不知道为什么它不起作用。所以我真的很感激任何帮助/评论。提前致谢。