我目前正在使用RichFaces评估Java EE6/JSF2.1。
声明为
@ManagedBean
@ViewScoped
@Named
@ConversationScoped
是否必须使用conversation.begin()
和conversation.end()
方法?
如果是的话,哪里才是调用它们的好地方呢?
如果可以升级到JSF2.2,请立即升级。它为CDI提供了本机@viewscoped
注释。
import javax.faces.view.ViewScoped;
import javax.inject.Named;
@Named
@ViewScoped
public class Bean implements Serializable {
// ...
}
或者,安装OmniFaces,它自带CDI兼容的@viewscoped
,包括工作的@predestroy
(在JSF@viewscoped
上中断)。
import javax.inject.Named;
import org.omnifaces.cdi.ViewScoped;
@Named
@ViewScoped
public class Bean implements Serializable {
// ...
}
另一种选择是安装MyFaces CODI,它透明地将JSF 2.0/2.1@viewscoped
连接到CDI。这只会向URL添加一个自动生成的请求参数(就像@conversationscoped
所做的那样)。
import javax.faces.bean.ViewScoped;
import javax.inject.Named;
@Named
@ViewScoped
public class Bean implements Serializable {
// ...
}
如果您确实需要使用@conversationscoped
,那么您确实需要手动开始和结束它。您需要@inject
一个conversation
并在@postconstruct
和end()
中调用begin()
(通常是重定向到新视图的操作方法)。
import javax.enterprise.context.Conversation;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Named;
@Named
@ConversationScoped
public class Bean implements Serializable {
@Inject
private Conversation conversation;
// ...
@PostConstruct
public void init() {
conversation.begin();
}
public String submit() {
// ...
conversation.end();
return "some.xhtml?faces-redirect=true";
}
}
###另见:
问题内容: 我试图将字符串分成数组并替换为,但无法做到,我也尝试了String.replaceAll这样的东西。 我想提供一个通往JNI的路径,并且它只能以这种方式读取。 问题答案: 在这种情况下不要使用- 这是用正则表达式指定的,这意味着您需要更多的转义。这应该很好: 请注意,由于Java字符串文字中的原因,反斜杠加倍-因此此处涉及的 实际 字符串是“单反斜杠”和“双反斜杠”-而不是双倍和四倍。
这可能是一个很难回答的问题,但是在很多教程和示例中,我看到这些注释的使用就好像它们做了同样的事情。 但是,我使用时遇到了一些限制(尤其是依赖注入等),我找不到解释差异的源,如果有人能给出一个大致的概述,说明什么时候使用这两个,我将非常感谢。
我想使用Mojarra和Weld在Apache TomEE上运行一个WebApp。 是否因为TomEE已经使用了另一个CDI-Framework(OpenWebB)而出现了问题?有可能让TomEE和Weld一起运行吗?
本文向大家介绍如何在MySQL中用SPACE替换“ +”(加号)?,包括了如何在MySQL中用SPACE替换“ +”(加号)?的使用技巧和注意事项,需要的朋友参考一下 要替换,请使用MySQL中的函数。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是用空格替换“ +”(加号)的查询- 让我们再次检查表记录- 这将产生以下
在我的应用程序中,用户应该能够切换区域设置(用于在页面上呈现文本的语言)。大量教程使用FacesContext.get货币实例()。getViewRoot()。setLocale()。例如:http://www.mkyong.com/jsf2/jsf-2-internationalization-example/.但是,这在JSF 2.0中根本不起作用(它在1.2中确实起作用)。这种语言从不切换。
问题内容: 我的场景仅包含一个ImageView,显示一个图像。我想将图像淡化为黑色(场景的指定颜色),然后过一段时间后,再次从黑色淡入图像。我发现FadeTransition非常适合此目的。这是我的一部分代码: 我的问题是异步的,因此下面的代码将在退出之前开始执行。结果,我只看到第二个过渡。如何等待第一个过渡结束,然后启动第二个过渡?我无法让线程在两者之间进入睡眠状态,因为它是主要的javafx