数据模型的一个优点是您可以获得表中的行索引。但我发现这是不必要的,因为您可以使用h:datatable的var属性访问当前行元素。而且我经常需要转换为数据模型来列出,因为一些组件库需要一个列表。我正在考虑完全放弃DataModel。你怎么看?DataModel有什么优势吗?谢谢,西奥 最佳答案 另一个好处是可以通过DataModel#getRowData()获取当前处理的行.当您想在事件(转换/验证、值更改监听器、操作方法等)期间访问当前行时,这特别有用。例如与publicStringedit(){Itemitem=dataMode
一些背景:我正在构建一个自定义的JSF组件。该组件基本上是一个文本编辑器,它应该有一个“保存”按钮,用于保存编辑器的内容字符串。因为我正在使用CodeMirror库,我需要使用javascript从编辑器中获取内容(字符串)并将其发送到服务器。因此,在这种情况下,我不能使用基于XML的JS调用,例如f:ajax。问题:我打算用jsf.ajax.request发送字符串,但它不直接支持对bean的调用方法。如何以AJAX方式使用JSF调用bean中的方法?至少有两种方法可以解决这个问题:在带有隐藏输入字段的页面中包含一个隐藏表单。从javascript更新该输入字段,然后调用jsf.aj
我有一个可以是或否的字符串,在Java支持bean的对象中实例化。我似乎找不到最好的方法来根据JSF分别从bean获得是或否来有条件地设置文本红色或绿色的样式。我正在使用richfaces,但我应该使用吗?标签? 最佳答案 (按优先顺序):style="color:#{yourVar=='yes'?'green':'red'};"做两个不同样式的组件,每个都有不同的rendered属性(一个#{yourVar=='yes'}和另一个#{yourVar=='no'})定义一个(jSTL/facelets/jsf2.0)函数,它将var
在我的JSF1.2webapp中,我有一个带有的页面调用支持bean上的操作方法。此操作将导致数据库中的数据被删除/替换,因此我想避免用户意外单击命令按钮的任何情况。我想实现一个简单的“你确定吗?”使用JavaScript提示“是/否”或“确定/取消”选项。我不太擅长JavaScript,而且我以前从未将JavaScript与JSF混合使用。任何人都可以提供代码片段来告诉我如何实现它吗?这是我声明命令按钮的JSP页面:解决方案:BalusC提供的解决方案运行良好。我还想提一下,使用资源包中的文本作为提示文本很容易。在我的页面上,我使用如下元素加载资源包:必须在你的里面.然后我将Balu
为JSF网络应用程序实现身份验证和授权的最佳方式是什么?最好我仍然想使用基于容器的安全性,因为我需要调用需要主体的EJB。我意识到基于表单的身份验证是与JSF的主要斗争,但我是否可以将PhaseListener或类似的东西与程序化登录一起使用来对用户进行身份验证?还有什么其他方法我应该看看吗? 最佳答案 尝试查看博客usingJAASwithJSF.这是如何使用JSF部署JAAS以进行身份验证和授权的示例。希望对你有帮助。老虎 关于java-JSF身份验证和授权,我们在StackOv
JSF2.0可以与WebSphereApplicationServer7.x版一起使用吗?如果是,怎么做到的? 最佳答案 WebSphereInfocenter表明更改为替代JSF实现的正确方法是创建一个启用了隔离类加载器选项的WebSphere共享库。任何需要JSF2的模块都将与新的共享库相关联,然后应用程序将从JSF2而不是JSF1.2开始。也是necessarytohavefixpack7.0.0.19orlaterinstalled. 关于java-JSF2.0可以与Websph
我正在创建一个数据库设置jsf页面,该页面在页面加载期间显示属性文件中的值。然后用户更新页面并按下提交,属性文件中的值得到更新。我遵循了Balusc提供的这个解决方案InvokeJSFmanagedbeanactiononpageload并在支持bean的构造函数中设置值。publicDbSettingsBean(){this.setUserName(helper.getValueForProperty("user_name"));this.setPassword(helper.getValueForProperty("password"));}虽然我设法在页面加载期间显示属性文件中的
我正在尝试为JSF寻找一个实用的单元测试框架。我知道JSFUnit,但这对我来说非常不切实际。我需要在我的项目中包含大约10个JAR,并跳过许多其他环节才能让它运行起来。我意识到,由于需要模拟平台和客户端,因此很难对Web应用程序进行单元测试。但是有更好的方法吗? 最佳答案 您是否考虑过使用Selenium进行集成测试?还是其他工具?Selenium允许您直接在浏览器中记录和运行测试。您还可以使用SeleniumRemoteControl在多个浏览器和多个平台上运行测试.编写单元测试很好,但它可能提供更多功能来创建一些功能集成测试,
我在JSF中通过AJAX更新组件:Clickme作为住在外面我必须在ID前加上冒号(:)。这行得通。但是,如果我将相同的代码放入一个组件并将该组件包含到我的页面中,代码就会失败。原因是:messages声明指的是组件层次结构的根,而我要更新的组件实际上位于我的自定义组件下,该组件位于页面下(因此位置的样式为:myComponent:messages。在我的组件中,如何获得的正确前缀零件?我知道我可以手动为我的组件分配ID,并使用它作为引用的前缀(如:#{cc.attrs.id}:messages)。但是,我不知道该组件位于组件层次结构的哪个级别,因此所需的前缀甚至可能类似于:foo:b
在JSF中,h:dataTable和h:panelGrid都创建htmltable标签。两者有什么区别?什么时候使用其中之一? 最佳答案 顾名思义,h:dataTable主要用于显示包含应用程序中某些模型数据的表格。Hereisanusageexample.h:panelGrid主要用于元素的布局和放置。Hereisanusageexample. 关于java-JSF:h:dataTable与h:panelGrid,我们在StackOverflow上找到一个类似的问题: