问题标签 [mojarra]
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 - 使用 JSTL/core 标签搞砸了 ViewScoped Bean
我想我在 Mojarra 2.1.0 中遇到了一个错误。也许我错过了一些东西,但如果我能看到它该死的。
我依靠很多 @ViewScoped bean 来保存状态,而浏览器对服务器执行大量 AJAX。我发现当我使用某些标签时,@ViewScoped bean 在不应该被重新实例化时开始重新实例化。这是我的测试用例支持 bean:
这是使用它的 JSF Facelets 页面:
所以这就是问题所在。当您单击“Do Me”命令按钮时,每次都会创建一个新的支持 bean 实例,就像它是一个 @RequestScoped bean 一样。我可以通过构造函数中的 log() 调用看到这一点。
如果将 bean 更改为 @SessionScoped,则不会发生这种情况。无论按钮被单击多少次,您都会获得一个 bean 实例。
但是——如果您将其保留为@ViewScoped,并取出c:foreach元素及其内容,它现在不再在每次单击时重新实例化 bean。换句话说,它现在按预期工作。
这是一个 mojarra 错误还是我在这里做错了什么?
jsf-2 - ui:repeat var 属性未按预期工作
由于@ViewScoped 的问题,我必须在我的 facelet 中使用 ui:repeat 而不是 c:foreach 。但是我遇到了这个问题,我想知道是否有人可以提出解决方法。
第一个问题是 #{led} 引用是 id 属性没有得到评估。所有生成的 id 属性都只是值“mailbox-”。我需要使用 document.getElementById() 找到特定的元素实例,所以我需要生成的 id 属性。
我看不到解决方法的另一个问题是,如果我将 ui:repeat 元素包装在 h:panelGrid 元素中,我最终会得到一个包含一个单元格的表格,而不是每个成员的一个单元格idCodes 集合。
使用 c:foreach 时,这些问题都不存在,但使用该标签会导致其他问题。有什么建议么?
jsf-2 - Work around for faulty INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL in Mojarra JSF 2.1
I know there are a number of posts about converting empty string to null in JSF2. The usual prescription is to add the following to web.xml.
This just does not seem to work - at all. I then created a custom string converter to test if that would work. I explicitly added it as a converter to my inputText (otherwise it does not fire when blank).
When INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL is set to true the converter receives null and the setter for the input text still receives "".
When INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL is set to false (or commented out) the converter receives "" and the setter for the input text receives "" (even after the converter returns null).
I've event tried (to no avail) to explicitly set the component submitted value in getAsObject:
I'm using JBoss6 (a snapshot of 6.1 really) and JSF 2.1.1.
java - JSF 验证错误:值无效
我知道这似乎很常见,但我迷失了。在单击assessment.jsf 中的添加按钮时发生。无论如何,我附上了我认为相关的部分。
FWIW,AssessmentType.equals() 在我调试时没有被触发。
提前致谢。
评估.xhtml:
评估.jsf:
评估类型.java:
AssessmentFieldConverter.java
评估Bean.java
编辑:
刚刚在调试时注意到这一点,这可能是嫌疑人吗?:
jsf - JSF/Mojarra“闪存范围”问题
我有一个在 Mojarra 2.1.1 / Glassfish 3.1 上运行的应用程序,现在已经增长到 150,000 多行代码。该应用程序将 ajax 与 ViewScoped 托管 bean 和 page-redirect-get 模式(即 faces-redirect=true)一起广泛使用。
一直让我烦恼的一件事是从页面到页面以及从 bean 到 bean(每个页面都有它自己的支持 bean)显然缺乏传递参数的便利性。
我一直无法让闪光灯工作。我通常需要在下一页的 preRenderView 事件侦听器中访问我已写入闪存的数据。这不能可靠地工作,尤其是在应用程序重新部署之后。
我已经阅读了 CDI 并花了几天时间尝试从 JSF 托管 bean 迁移到 CDI bean,但无法让它工作。Seam 3 和 Glassfish 3.1 之间似乎存在很多兼容性问题。我将 Weld 升级到 1.1.1,但这并没有帮助。从我的角度来看,它目前不起作用。当我说不起作用时,例如,我有一个页面试图将 h:inputText 转换为支持 bean 中的字符串,这不起作用,非常简单的东西。
由于我遇到的 CDI 问题,我无法在一个非常简单的测试应用程序(即使在 g/f 3.1 上)中使用缝面 @RenderScoped,它只是我想要的,但在复杂的主应用程序中却不行。
目前我能找到的唯一可靠的机制是 URL 参数,这是一个安全噩梦。尽管已尽一切努力确保对数据的访问得到正确的身份验证,但总是会丢失某些内容,并且在浏览器中看到 ...xhtml?id=51031 或其他任何内容对于某些人来说太多而无法抗拒尝试其他 ID。我编写了一个混淆转换器来避免使用明文并且不对名称/值对使用有意义的名称,但这并没有解决问题的根源。
我只是想知道我是否在这里遗漏了一些东西,其他人是否有解决这个问题的有效方法,即使是在 glassfish 上?我是否太担心并且应该坚持使用 URL 参数?还有其他建议吗?
谢谢。
jsf-2 - post 在 JSF2 flash 范围内设置值后,在对页面的第二次 GET 请求时再次可见(Flash 范围被认为是有害的)
我在 JSF2 中测试了新的 Flash 范围,但我发现它存在一个主要问题,或者我缺乏一些知识。
有一个页面:
我有一个场景:
- 输入一个值“foo”并单击测试
- 我得到'Flash中的价值:foo'
- 我用相同的地址打开新页面
- 我得到“闪存中的价值:”
- 我用相同的地址打开另一个新页面
- 我得到'Flash中的价值:foo '<-恕我直言,这是错误的!
重现性:在 Glassfish 3.1 和 JBoss AS 7 上 100% 测试
可能相同原因的不同问题:Removing JSF messages from flash
所以:
- 它是 JSF2 闪存所需的行为吗?
- 基于闪存的这个和其他注意到的问题,参考闪存实现是否应该被认为是有害的?
jsf-2 - Mojarra 失去视图参数
我正在尝试在 Mojjara 中实现 post-redirect-get 模式。我有两个具有相同标题的页面和一个搜索表单。
两个页面都在其通用模板中包含了这两个代码
当我提交表单时article.xhtml
,url 是search.xhtml
,当我提交表单时search.xhtml
,我得到预期的带有模式的 URL/search.xhtml?searchString=stringSearch&mutation=cs
我错过了什么吗?
编辑:支持 bean 使用视图和 flash 之间的某种组合(bean 保存在两个范围中,并从它幸存的那个范围中检索)。从调试来看,JSF 似乎在将参数保存在 bean 中之前获取了参数(在不正确的用例中)。
html - 向 JSF 2.0 UIInput 组件添加自定义属性 (HTML5) 支持
我正在尝试编写一个渲染器来处理组件placeholder
上的属性<h:inputText>
。在阅读了 JSF 2.0 去除了所需的 HTML5 属性后,我走向了这条路,这似乎是正确的。这是我的自定义渲染器
这个渲染器在 faces config 中注册为
这可以很好地注册,那里没有问题。
我的意图是处理placeholder
属性,插入它,然后将处理委托给super。我上面的代码不起作用,因为我在错误的地方插入了属性。它必须在writer.startElement('input')
执行后插入。但是,startElement 必须发生在 superencodeBegin()
方法的某个地方。那么如何插入自定义属性(在本例中为“占位符”),然后继续执行流程?
注意:上面的代码确实添加了一个placeholder
属性,但没有添加到我想要的输入组件,它将它写入 Input 的父级(因为我试图在组件本身实际写入流之前写入属性,它将属性应用于当前组件)
jsf-2 - WebSphere 7+ 中的 JSF 2 Mojarra 和 Primefaces
我一直在与 WebSphere 7+ 和 Mojarra 2.0.4 的邪恶联盟作斗争,并且遇到了一些阻碍。
我按照此论坛帖子中指定的说明进行操作,并正确初始化了 Mojarra 2.0.4:http: //forum.primefaces.org/viewtopic.php? f=3&t=6860
基本上,我创建了一个独立的类加载器共享库,它在外部引用 Mojarra 和 Primefaces jar,将共享库添加到 webapp 并将类加载器反转为 PARENT_LAST。所有这些都有效。
当我尝试访问我的网络应用程序http://server:port/context/index.xhtml
时,它正确地点击了 FacesServlet,但随后请求调度程序立即重定向到index.jsp
???
我没有在我的代码、我的应用程序、我的 web.xml 中的任何地方指定任何 JSP,实际上我指定DEFAULT-SUFFIX
了.xhtml
,但这并没有帮助。我所有的网页都是.xhtml
扩展名,FacesServlet 正确映射到*.xhtml
.
我尝试将 XHTML 作为 MIME 类型添加到 WebSphere,禁用 Request Dispatcher,但都无济于事。我已经能够在 Tomcat 6-7、JBoss 6 和 Glassfish 3 上正常运行,没有任何问题,但出于某种原因,WebSphere 坚持使用 JSP 文件扩展名?
感谢您提供的任何帮助。