我正在使用JSF 1.2编写的一个相当大的应用程序.JSF 1.2现在已经有6年了.我需要升级到JSF 2.0.这会有多痛苦?我注意到自定义标签中的一些属性已被更改等.
当尝试在EL中引用托管bean时#{bean.entity.property},有时会javax.el.PropertyNotFoundException: Target Unreachable抛出异常,通常是在设置bean属性时,或者要调用bean操作时.
似乎有五种不同的消息:
这些都意味着什么?它们是如何引起的,它们应该如何解决?
我觉得Java EE 6规范有点乱.有几组注释.
我们有javax.ejb类似于@Stateful和@Stateless创建EJB的注释.
还有一个@javax.annotation.ManagedBean用于创建托管bean.
javax.enterprise.context喜欢@SessionScoped和注释中有注释@RequestScoped.
更重要的是也有@ManagedBean和@SessionScoped/ @RequestScoped在注释javax.faces.bean包.
为了使事件更复杂,有一个javax.inject带@Named注释的包.
有人可以描述一下他们之间的关系吗?
我在哪里可以使用@EJB,@Inject或@ManagedPropery注入其他豆类?
我正在尝试编写一个自定义servlet(用于AJAX/JSON),我想在其中引用我@ManagedBeans的名字.我希望能够映射:
http://host/app/myBean/myProperty
至:
@ManagedBean(name="myBean")
public class MyBean {
public String getMyProperty();
}
Run Code Online (Sandbox Code Playgroud)
是否可以从常规servlet中按名称加载bean?是否有我可以使用的JSF servlet或帮助程序?
我似乎被春天宠坏了,这一切都太明显了.
我目前正在实现一个小型的Spring MVC PoC,我想使用JSF作为视图技术,因为我公司的大多数人习惯于使用Primefaces环境的J2EE.
Spring MVC 3是支持JSF,还是只支持JSP?我已经阅读了两篇混合两篇的文章.
我需要创建一个吸引人的UI.有没有一种简单的方法来使用Spring MVC和JSP作为视图技术?
我们的应用程序在多页中使用计划/日历.它基本上是一个时间管理APP
由于CDI(及其实现Weld),JEE6中的每个POJO都可以注释@Named,这使得POJO可以被视图访问.
这是否意味着ManagedBeans现在已经完全过时了?还是我错过了@ManagedBean仍然有意义的东西?
我知道托管bean的工作方式类似于控制器,因为您唯一的任务是将视图层与模型"链接"起来.
要使用bean作为托管bean,我必须声明@ManagedBean注释,这样做我可以直接与bean通信JSF.
如果我想在这个managedBean中注入一些组件(来自Spring),我有两种可能的方法:
在ManagedBean中选择属性(如"BasicDAO dao")并@ManagedProperty(#{"basicDAO"})在属性上方声明.这样做,我"basicDAO"在ManagedBean中从Spring 注入bean .
在ManagedBean Class中声明了@Controller,然后我将拥有@ManagedBean和@Controller注释一起.在物业中"BasicDAO dao"我必须使用@AutowiredSpring.
我的理解是否正确?
有什么区别
import javax.annotation.ManagedBean;
import javax.enterprise.context.SessionScoped;
Run Code Online (Sandbox Code Playgroud)
和
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
Run Code Online (Sandbox Code Playgroud)
?
这可能是一个noob问题,但是在很多教程和示例中,我看到这些注释被用作好像它们做同样的事情.
然而,我遇到一些限制使用@Named一个(特别是依赖注入等)我找不到解释差异的来源,如果有人可以粗略概述何时使用一个或者其他.
我正在尝试处理@ManagedProperty但没有成功!
我一直在关注这个指南,看起来并不难.但我的代码根本行不通!
这是一个小片段
@ManagedBean
@SessionScoped
public class LoginBean {
@EJB
private LoginUserLocal loginUser;
private boolean loggedIn = false;
private User user;
private StreamedContent image;
.
.
.
//--
@Named(value = "messagesBean")
@RequestScoped
public class MessagesBean {
@ManagedProperty(value = "#{loginBean}")
private LoginBean loginBean;
public LoginBean getLoginBean() {
return loginBean;
}
public void setLoginBean(LoginBean loginBean) {
this.loginBean = loginBean;
}
public String getUser() {
System.err.println(loginBean == null);
return loginBean.getUser().getUsername();
}
Run Code Online (Sandbox Code Playgroud)
这段代码给了我一个NullPointerException,说loginBean为null!
有什么建议吗?
jsf ×8
managed-bean ×5
cdi ×4
jsf-2 ×4
java-ee ×3
el ×2
java ×2
jboss-weld ×2
spring ×2
ejb ×1
integration ×1
java-ee-6 ×1
jsp ×1
migration ×1
primefaces ×1
servlets ×1
spring-mvc ×1
tomcat7 ×1