问题标签 [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 投票
2 回答
1559 浏览

java - 无法从查询字符串中读取重音字符

我在 . 的帮助下将 queryString 中的值设置为 managedBean 的属性<f:viewParam>。如果我打印属性的值,它对于普通字符正常工作。但是,当 queryString 包含重音字符时,在将值设置为 managedBean 的属性后,如果我打印该属性的值,重音字符将无法正确显示。

.xhtml 代码片段如下:

托管豆:

如果查询字符串包含...&requestString=abcdefgh&..... 那么它会abcdefgh正确打印。但是如果查询字符串包含 ...&requestString=SociétéGéniale&.. 那么它会打印SociétéGéniale. 但我想要SociétéGéniale。任何指针都会对我很有帮助。

Edit-1 生成的错误:

0 投票
1 回答
3792 浏览

jsf - 元数据组件需要嵌套在 af:metadata 标记中。建议:将必要的组件包含在

我经历了不同的来源,例如:

似乎问题已在 jsf 2.2.1 中得到修复,当我尝试使用时,我遇到了问题,以下是我的配置:

模板.xhtml:

页:

马文:

在 UI 中,我遇到如下问题:The metadata component needs to be nested within a f:metadata tag. Suggestion: enclose the necessary components within <f:metadata>

即使它没有调用<f:viewAction>

任何建议或帮助将不胜感激。

我在部署过程中注意到的一件事:INFO: Initializing Mojarra 2.2.0 ( 20130502-2118 https://svn.java.net/svn/mojarra~svn/tags/2.2.0@11930 ) 的上下文/connectWAR

我不确定为什么这会告诉 Mojarra 2.2.0,即使我已经升级到 2.2.1

0 投票
1 回答
711 浏览

validation - 的验证/转换错误不要本地化到, 但默认语言环境

<f:viewParam>在 JSF 页面上有一个标签,它在转换和验证后将 GET 参数设置为相应的托管 bean。

如果发生转换或验证错误,则会从资源包中获取适当的错误消息并显示在<p:messages>(也可能是<p:growl><h:messages>)上。

该应用程序是多语言的。Therefore when a different language is selected, a message should be displayed in that language but it always displays the message according to the default locale en(for English).

测试.xhtml:

转换器:

除了来自 的消息<f:viewParam>,没有任何问题。所有其他类型的消息都以用户选择的语言显示。

有什么特别之处<f:viewParam>吗?

0 投票
1 回答
3668 浏览

jsf-2 - 使用新的 xmlns.jcp.org 命名空间时,f:viewParam 未传递必需的参数

我正在尝试使用带有 Java EE 7 XML 命名空间的 Glassfish 4.0 来测试下面的示例。

它链接到以下页面movie.xhtml

#{appLoad}支持 bean是

运行索引页面并单击链接时,网址完全更改为

结果.xhtml?id=8

但是没有显示任何数据。它是空白的。我想通了#{appLoad.movieId}null也就是说,<f:viewParam>没有设置这个请求参数。

我唯一的解决方法是将 XML 命名空间改回旧版本。

我猜我这里出了点问题。这个问题是如何引起的,我应该如何使用新的 XML 命名空间?

0 投票
1 回答
1681 浏览

jsf - 使用多个与自定义转换器一起在 JSF 页面上,并仅忽略转换失败的无效参数

我有两个<f:viewParam>标签包含在<f:metaData>JSF 页面上的标签中,如下所示。

index.xhtml 文件:

converter它们中的每一个都与属性指定的转换器相关联。

当两个参数即userIduserRoleId作为查询字符串附加到 URL 时,两个属性即userTableentity被设置为关联的托管 bean -testManagedBean在指定的转换器进行转换之后。

托管bean:


当其中一个属性的转换失败时,或者userIduserRoleId,另一个属性以及失败的属性也不会设置为托管 bean(预计会设置,因为该其他属性的转换不太可能失败)并且两者其中为空。

例如,如果我输入了这样的 URL,

/index.jsf?userId=100&userRoleId=12

然后,方法中的以下语句preRenderEvent()(与 关联<f:event>),

显示true : true.

在这种情况下,转换userId失败(数据库中不存在值 100)但转换userRoleId应该成功(但没有成功)并且不应该为空(存在于数据库中)。


同样,以下网址,

/index.jsf?userId=1&userRoleId=120

再次显示true : true

这是前一个的相反情况。userId存在于数据库中,但userRoleId不存在。


最后,以下网址,

/index.jsf?userId=1&userRoleId=12

显示false : false。在这种情况下,两个参数的值都存在于数据库中它们各自的表中。

转换失败通过抛ConverterException来通知就不用说了。


那么,当其中一个属性的转换失败时,为什么这两个属性的值都设置为 null?当其中一个转换器的转换失败时,是否只执行其中一个转换器?

0 投票
1 回答
340 浏览

jsf - JSF 从组件中访问 viewParams

我有一个组件来显示一个条目。这个组件可以在同一个页面中出现多次,因此只需要一个实体,将它传递给组件的支持 bean,所有的魔法都会发生。

组件的外观会受到各种参数的影响。

现在,一个要求是,无论我有 1 个还是 10 个这些组件,都应该可以使用深度链接恢复“相同”的视图状态。

假设我的组件如下所示:

它有一个对应的backing Bean,我可以访问。(省略这个,因为它不是必需的)

现在,这些组件被嵌入到一个页面中,如下所示:

如前所述,每个项目的状态都可能受到影响,并且更改后的状态必须可以通过深度链接访问。所以,我的想法是,<h:link>在组件内部使用,为每个属性添加前缀并使用includeViewParams="true",这样每个(非默认)状态都是 url 的一部分。

就像“更大”的链接一样,最多有 10 个链接,提供不同的选项。

问题: include-view-params确实包含来自同一组件及其父级 (itemType) 的所有视图参数,但不包含来自其他组件的所有视图参数。所以,基本上改变“一个”组件的样式,会丢弃另一个组件的参数。

预期:网址已经看起来像?itemType=something&asize=5&abackground=green 单击b组件上的“更大”链接会给我:?itemType=something&asize=5&abackground=green&bsize=5

发生了什么:单击链接后,网址如下所示:?itemType=something&bsize=5 因此“a”的属性被删除。

我注意到,如果我<f:metadata>在列表页面上扩展对象时使用<f:viewParam name="asize" />aSize 参数之类的东西,当从“b”中单击某些东西时,将被保留 - 但当然,如果我需要列出所有类似的参数,我不需要组件,因为我无法预测项目的数量。

所以,我试图在组件内添加它(如 f:event):<f:viewParam name="#{cc.urlPrefix}size" />- 但这不起作用。

对此有任何想法(或替代解决方案?注意:将视图状态保存在数据库中,并且简单地使用“单个”id 来引用该状态基本上是不好的,因为这会导致大量数据污染。视图状态需要保持短暂,但可恢复:0))

0 投票
1 回答
970 浏览

jsf - 期间未设置提交

我想创建一个表单来简单地修改某些项目实体的字段。

为此,我创建了一个请求范围的 bean 和一个视图,它与转换器一起使用来告诉 bean 正在编辑哪个实体。

看法

加载视图最初工作正常,加载选定的项目,表单字段填充项目的属性。但是,在保存表单时,我收到以下堆栈跟踪:

在调试问题的时候发现确实调用了转换器,但是在上述生命周期发生之前,返回的项目并没有设置在bean上。如果我在 bean 中返回一个虚拟项目,一切正常,最终设置选定的项目我可以使用更新的值进行持久化。

这是预期的行为吗?我可以在不返回虚拟项目的情况下运行它吗?

我见过使用视图范围 bean 的方法。由于我们使用的是 CDI,我更愿意坚持使用 javax.enterprise 注释。如果您认为其余代码(模板、转换器)有任何相关性,我很乐意添加它们。

0 投票
1 回答
301 浏览

jsp - 如何在 JSP 中使用视图参数?

我想使用视图参数来获取带有 JSF 2 的可收藏 URL,但我使用 JSP 以及我能找到的所有帮助和示例,使用 facelets。这是我到目前为止所做的事情:

search.jsp(调用页面):

面孔-config.xml:

Edit.java(编辑页面支持 bean):

我认为问题在于,我没有将视图参数添加到编辑页面(例如 edit.jsp)。我只找到了 facelet 示例,如下所示:

我的问题是,我可以使用 JSP 视图参数吗?有人可以提供或指出一个完整的例子吗?尤其是带有目标页面的部分(例如edit.jsp)。

0 投票
1 回答
1851 浏览

jsf - f:viewParam 不工作

我在 GlassFish 3.1.2.2 上使用 JSF 2.2.4。

我有这个支持bean:

而这个观点test.xhtml

当我打开/test.html?id=123时,ID 显示为0而不是123。为什么<f:viewParam>不做它的工作?

更新

我安装了 GlassFish 4.0。

JSF 的 Maven 依赖项:

faces-config.xml

并且test.xhtml

但 ID 显示为0.

用于测试的 Maven 项目: https ://www.dropbox.com/s/qbc05vysspvt46l/jsf-spring-mybatis-master.zip

0 投票
1 回答
1716 浏览

jsf-2 - f:viewparam 未在 bean 中设置

我有一个对象列表,每个条目都有一个指向对象详细视图的链接。链接的代码是

和前任。结果链接是:

http://bla-bla.bla/cmn-web/view/cmn/billDetailView.xhtml?faces-redirect=true&phoneNr=41798009726&fromDate=2013-01-01&toDate=2013-01-31

详细视图的 bean 具有使用 getter 和 setter 定义的参数,并且页面也定义了 f:viewparam:

问题是细节bean中的值永远不会设置......

现在我在调试器中看到的是,在单击链接后(我假设在加载页面并调用 selectData 方法之前)参数的 getter 被调用,而不是 setter。

bean 是 ManagedBean 和 CustomScoped。

我想念什么?

编辑:

Bean(一个非常简单的):