有没有办法让JSF Backing bean导致页面上组件的更新?我不打算使用带有update属性的ajax组件来更新页面上的组件.我需要从JSF支持bean方法中触发更新.请注意,此方法完成后或完成之前,页面上的更新可能会发生.我正在使用PrimeFaces,如果有一个解决方案可以使用PrimeFaces.
什么时候应该使用f:viewActionor preRenderView事件来初始化页面的数据而不是使用@PostConstruct注释?基于支持bean的范围类型使用一个或另一个的基本原理例如,如果支持bean是@RequestScoped,那么在呈现视图之前选择使用f:viewAction或preRenderView覆盖@PostConstruct初始化支持bean是不相关的,因为两者会结果是一样的吗?
f:viewAction或preRenderView
<f:metadata>
<f:viewAction action="#{myBean.initialize}" />
</f:metadata>
Run Code Online (Sandbox Code Playgroud)
<f:metadata>
<f:event type="preRenderView" listener="#{myBean.initialize}"/>
</f:metadata>
Run Code Online (Sandbox Code Playgroud)
要么
@PostConstruct
public class MyBean
{
@PostConstruct
public void initialize()
{
}
}
Run Code Online (Sandbox Code Playgroud) 我们计划使用非"预烘烤"的AMI EC2实例.即,当它们被旋转时,它们只是AWS linux的安装.我们的引导过程将引入我们需要的各种安装,例如python,tomcat.我们最少有3个实例,最多8个实例.
鉴于这些要求,使用Puppet/Chef是否有用而不是使用Amazon Cloud Formation(CloudInit)?
我能看到的最好的是如果我们使用Puppet,那么我们就会进行声明性编程,这样可以更容易地进行审计,以查看脚本发生了什么.此外,CloudInit有一个16k的脚本大小限制,我们可能会或可能不会遇到.
有没有人从CloudInit转移到Puppet或Chef,因为他们可以在这里回答我的问题?
当您想在ELB后面部署新版本的应用程序时,如何在AWS中建立维护页面?我们希望在新的自动缩放实例出现时将ELB路由流量提供给维护实例,并且只有在它们完全启动时才"翻转"到新实例.我们使用自动缩放功能将现有实例降低,并使用具有新代码的新实例.
我们试图避免的情况是让ELB同时为新的EC2实例提供流量,同时提供维护页面.由于我们没有启用粘性会话,因此我们希望防止用户在维护模式页面和部署在EC2实例中的应用程序之间来回切换.我们也不能只扩展(例如从2到4个实例然后再回到2)来引入新实例,因为代码更改可能涉及数据库更改,这将破坏旧代码的更改.
我想创建一个Git hook(s),它将在我的源代码中填充我将要生成的提交的提交id到一个文件(基本上是变量替换).这可能与Git有关吗?或者是通过将变量解析为git id,我将改变sha 1,从而结束了"鸡或鸡蛋"问题.
操作和存储日期的最佳实践是什么,例如在企业Java应用程序中使用GregorianCalendar?
寻找反馈,我会将任何好的答案合并到其他人可以使用的最佳实践中.谢谢!
我们有一些针对大量数据运行的搜索页面需要一段时间才能完成.当用户点击搜索按钮时,我们不希望他们第二次提交搜索结果.
在JSF中进行"双击"检测/预防是否有最佳实践?
PrimeFaces组件似乎可以做我们想要的,因为它会在点击搜索按钮和搜索完成之间的一段时间内禁用UI,但是我们可以使用更通用的策略(也许是不是依赖于PrimeFaces)?理想情况下,在搜索完成之前,对按钮的任何单击都将被禁用或忽略.我们不一定需要禁用整个UI(因为blockUI允许你这样做).
我需要能够遍历整个对象图并记录所有成员字段的所有内容.
例如:对象A具有对象B的集合,其具有对象C的集合,并且A,B,C具有其他字段,等等.
Apache Commons ToStringBuilder是不够的,因为它不会遍历对象图或输出集合的内容.
有没有人知道另一个库会做这个或有一个代码片段来做到这一点?
从文档中不清楚为什么要在WebLogic群集中使用Unicast而不是Multicast.任何人都有使用任何一个和转移到Unicast的好处的经验?
在一个支持bean的@PostConstruct方法中,我调用了一个EJB,它可能会返回一些我希望通过p:messages在页面上显示的消息.但是,即使我添加FacesMessages,例如FacesContext.getCurrentInstance().addMessage(...),也不会使用FacesMessages更新p:messages.
如果我不是调用从页面的动作调用EJB(比如用户点击它调用调用EJB的方法在页面上的一个按钮,然后添加的FacesMessage(S)),那么messags显示用对:消息按预期.
如何在@PostConstruct期间添加Faces消息并在最初呈现页面时显示它们?
码:
Page1Controller.java:
@ManagedBean
public class Page1Controller
{
@PostConstruct
public void init()
{
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage("Test Message from @PostConstruct"));
}
public String getValue()
{
return "Some Value";
}
public void triggerMessage(ActionEvent event)
{
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage("Test Message from Trigger Button"));
}
}
Run Code Online (Sandbox Code Playgroud)
page1.xhtml
<h:form>
<p:messages showDetail="true" showSummary="true" autoUpdate="true"/>
<h:outputText value="#{page1Controller.value}"/>
<br/>
<p:commandButton value="Trigger Message"
actionListener="#{page1Controller.triggerMessage}"/>
</h:form>
Run Code Online (Sandbox Code Playgroud) jsf-2 ×3
java ×2
jsf ×2
primefaces ×2
amazon-elb ×1
chef-infra ×1
cloud-init ×1
date ×1
git ×1
message ×1
pageload ×1
puppet ×1
viewaction ×1
weblogic ×1