Questions tagged «jsf»

JavaServer Faces(JSF)是一个模型视图呈现器框架,通常用于创建基于HTML表单的Web应用程序。使用标准组件和渲染工具包,可以使用Facelets或JSP标签定义有状态的HTML视图,并通过后备bean连接到模型数据和应用程序逻辑。


2
什么时候应该使用h:outputLink而不是h:commandLink?
什么时候应该使用<h:outputLink>而不是<h:commandLink>? 我了解会commandLink产生HTTP讯息;我猜这outputLink将生成HTTP获取。就是说,我阅读的大多数JSF教程资料都是commandLink(几乎?)专门使用的。 上下文:我正在实施一个小小的演示项目,该项目显示了指向用户页面的标题链接,就像Stack Overflow的... ...而且我不确定commandLink(也许?faces-redirect=true用于书签功能)还是outputLink正确的选择。
129 jsf  jsf-2 

16
识别和解决javax.el.PropertyNotFoundException:目标不可访问
当像这样尝试在EL中引用托管bean时#{bean.entity.property},有时会javax.el.PropertyNotFoundException: Target Unreachable抛出异常,通常是在设置bean属性或调用bean操作时。 似乎有五种不同的消息: 目标无法到达,标识符“ bean”解析为空 目标无法到达,“实体”返回null 目标无法到达,“ null”返回null 目标无法访问,“ 0”返回null 目标无法到达,“ BracketSuffix”返回null 它们都是什么意思?它们是如何引起的,应该如何解决?

2
JSP EL,JSF EL和统一EL之间的区别[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 7年前关闭。 我想知道表达语言(EL)之间的详细区别。有JSP EL,JSF EL和Unified EL。 我想知道EL背后的历史以及Java EE应用程序中使用的最新EL是什么。EL是最新版本中所有视图技术的通用符号吗?
122 jsp  jsf  jakarta-ee  el 

6
JSF支持bean结构(最佳实践)
我希望在这篇文章中,我可以得到人们对于JSF页面和后备bean之间的接口的最佳实践的看法。 我永远无法解决的一件事是我的后备豆结构。此外,我从未找到关于该主题的好文章。 哪些属性属于哪个后备豆?在什么时候向给定的bean添加更多属性而不是创建一个新bean并将属性添加到给定bean?对于简单的应用程序,考虑到将一个bean注入另一个bean所涉及的复杂性,在整个页面上只有一个backing bean是否有意义?支持bean应该包含任何实际的业务逻辑,还是应该严格包含数据? 随时回答这些问题以及可能出现的任何其他问题。 至于减少JSF页和后备bean之间的耦合,我决不允许JSF页访问任何后备bean属性的属性。例如,我绝对不允许: <h:outputText value="#{myBean.anObject.anObjectProperty}" /> 我总是要求类似: <h:outputText value="#{myBean.theObjectProperty}" /> 支持bean值为: public String getTheObjectProperty() { return anObject.getAnObjectProperty(); } 例如,当我遍历一个集合时,我使用包装器类以避免钻取到数据表中的对象。 通常,这种方法对我来说感觉“正确”。它避免了视图和数据之间的任何耦合。如果我错了,请纠正我。
118 java  jsf 



5
是支持bean(@ManagedBean)还是CDI Bean(@Named)?
我刚刚开始阅读Core JavaServer Faces,第三版。他们这样说(强调我的意思): 对于可以在JSF页面中使用的bean,有两种单独的机制(CDI bean和JSF管理的bean)是历史上的意外。我们建议您使用CDI bean,除非您的应用程序必须在诸如Tomcat之类的普通servlet运行程序上运行。 为什么?他们没有提供任何理由。我一直@ManagedBean在GlassFish 3上运行的原型应用程序中使用过所有bean,但我还没有真正注意到与此相关的任何问题。我并不介意从@ManagedBean那里迁移到那里@Named,但是我想知道为什么我应该打扰。
109 jsf  jakarta-ee  jsf-2  cdi 

1
为什么JSF在服务器上保存UI组件的状态?
直到什么时候JSF都会在服务器端保存UI组件的状态以及何时从服务器内存中确切删除UI组件的状态信息?当应用程序上的登录用户浏览页面时,组件的状态是否会继续在服务器上累积? 我不明白在服务器上保持UI组件状态有什么好处!?将经过验证/转换的数据直接传递到托管bean是否不够?我可以还是应该避免使用它? 如果有成千上万的并发用户会话,那是否不占用服务器端太多的内存?我有一个应用程序,用户可以在其中发布有关某些主题的博客。这个博客的规模很大。当将有发帖或查看博客的请求时,这些大页面数据是否会保存为组件状态的一部分? 这样会占用过多的内存。这不是问题吗? 更新1: 现在,使用JSF不再需要保存状态。可以使用高性能的无状态JSF实现。有关相关详细信息和讨论,请参见此博客和此问题。此外,JSF规范中还包含一个未解决的问题,它是为JSF提供无状态模式的选项。(PS考虑的问题投票这个和这个,如果这对你是一个非常有用的功能。) 更新2(24-02-2013): 一个好消息是Mojarra 2.1.19退出了无状态模式! 看这里: http://weblogs.java.net/blog/mriem/archive/2013/02/08/jsf-going-stateless?force=255 http://java.net/jira/browse/JAVASERVERFACES-2731 http://balusc.blogspot.de/2013/02/stateless-jsf.html

4
如何在f:selectItem(s)中使用枚举值
我想创建一个selectOneMenu下拉列表,以便可以选择问题的状态。考虑到枚举顺序更改且列表很大时会发生什么情况,是否可以使f:selectItem更灵活?我可以做得更好吗?是否可以自动“选择”问题所具有的项目? 枚举类 public enum Status { SUBMITTED, REJECTED, APPROVED } 问题实体 @Enumerated(EnumType.STRING) private Status status; JSF <div class="field"> <h:outputLabel for="questionStatus" value="Status" /> <h:selectOneMenu id="questionStatus" value="#{bean.question.status}" > <f:selectItem itemLabel="Submitted" itemValue="0" /> <f:selectItem itemLabel="Rejected" itemValue="1" /> <f:selectItem itemLabel="Approved" itemValue="2" /> </h:selectOneMenu> <hr /> </div>

6
在任何与Servlet相关的类中按名称获取JSF托管bean
我正在尝试编写一个自定义servlet(用于AJAX / JSON),在其中我想@ManagedBeans按名称引用我的名字。我希望映射: http://host/app/myBean/myProperty 至: @ManagedBean(name="myBean") public class MyBean { public String getMyProperty(); } 是否可以从常规servlet中按名称加载bean?我可以使用JSF servlet或帮助程序吗? 我似乎对Spring感到宠爱,在Spring中所有这些都太明显了。

10
如何使用PrimeFaces p:fileUpload?永远不会调用侦听器方法,或者UploadedFile为null /引发错误/不可用
我正在尝试使用PrimeFaces上传文件,但是fileUploadListener上传完成后未调用该方法。 这是视图: <h:form> <p:fileUpload fileUploadListener="#{fileUploadController.handleFileUpload}" mode="advanced" update="messages" sizeLimit="100000" allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/> <p:growl id="messages" showDetail="true"/> </h:form> 和豆: @ManagedBean @RequestScoped public class FileUploadController { public void handleFileUpload(FileUploadEvent event) { FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded."); FacesContext.getCurrentInstance().addMessage(null, msg); } } 我在方法上放置了一个断点,但从未调用过。使用mode="simple"和时ajax="false",它被调用,但是我希望它在高级模式下工作。我正在使用Netbeans和Glassfish 3.1。

4
如何将选定的行传递到dataTable或ui:repeat中的commandLink?
我在JSF 2应用程序中使用Primefaces。我有一个<p:dataTable>,而不是选择行,我希望用户能够直接对单个行执行各种操作。为此,我<p:commandLink>在最后一栏中有几个。 我的问题:如何将行ID传递给命令链接启动的操作,以便知道要对哪一行进行操作?我尝试使用<f:attribute>: <p:dataTable value="#{bean.items}" var="item"> ... <p:column> <p:commandLink actionListener="#{bean.insert}" value="insert"> <f:attribute name="id" value="#{item.id}" /> </p:commandLink> </p:column> </p:dataTable> 但是它总是产生0-显然,f当呈现属性时,行变量不可用(当我使用固定值时,它可以工作)。 有人有替代解决方案吗?



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.