我正在使用带有多个上传选项的 PrimeFaces fileUpload。在我的项目中,我想在图像上传期间发送电子邮件通知。我的问题是当我上传 10 张图片时意味着同时发送 10 封电子邮件通知。我想在上传 10 张图片期间只发送一封电子邮件通知。我正在使用 primefaces 3.0 和 jsf 2.0。我该如何解决?
我的 jsf 页面:
<p:fileUpload id="imaload" fileUploadListener="#{photoUploadAction.handleImage}"
mode="advanced" multiple="true" process="@form"
update="messages,@form"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>
Run Code Online (Sandbox Code Playgroud)
支持豆:
public void handleImage(FileUploadEvent event) throws IOException, EmailException {
try {
photoUploadVO.setDisabled("false");
//BufferedImage image = ImageIO.read(in);
ImageIO.write(resize(bufferedImage, 400, bufferedImage.getHeight()), "jpg", new File(tmpFile));
flag = photoUploadDaoService.uploadPhotos(photoUploadVO);
// profileImageService.uploadPhotos(profileImageBean);
if (flag == true) {
if(!loginBean.getType().equals("ngo") && !loginBean.getType().equals("admin") &&
!loginBean.getType().equals("ngo_coordinator") ){
volName = getVolunteerName(photoUploadVO.getUsrId(),photoUploadVO.getUser_type());
lst = apDao.retreiveSetup();
notification = lst.get(0).activity_email.toString();
email = lst.get(0).approval_toEmail.toString();
if(notification.equalsIgnoreCase(tmp)){
ecs.sendPhotoNotiFication(email,photoUploadVO,volName);
}
}
FacesMessage …Run Code Online (Sandbox Code Playgroud) 根据 primefaces 文档,选择应该是一个数组。在下面的代码中 bean.selectedUsers 被定义为“HasUsersVO[] selectedUsers”,但数据表的值为 List。当我在数据表填满后单击“确定”按钮时,我收到粘贴在底部的强制转换错误。
<p:dataTable id="userListTable" value="#{bean.peopleVOList}"
var="user" rowClasses="odd even" selection="#{bean.selectedUsers}" rowKey="#{user.userGuid}"
<p:column selectionMode="multiple" style="width:18px">
</p:column>
.....
.....
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)
22:59:16,962 INFO [class com.zreflect.emyed.managedbean.circle.CircleController] (http--127.0.0.1-8080-3) *******************Outside getUsersList********************
22:59:38,943 WARNING [javax.enterprise.resource.webcontainer.jsf.lifecycle] (http--127.0.0.1-8080-3) [Lcom.user.PeopleVO; cannot be cast to java.util.Collection: java.lang.ClassCastException: [Lcom.user.PeopleVO; cannot be cast to java.util.Collection
at org.primefaces.component.datatable.DataTable.getRowData(DataTable.java:835) [primefaces-3.3.1.jar:]
at org.primefaces.component.datatable.DataHelper.decodeMultipleSelection(DataHelper.java:262) [primefaces-3.3.1.jar:]
at org.primefaces.component.datatable.DataHelper.decodeSelection(DataHelper.java:240) [primefaces-3.3.1.jar:]
at org.primefaces.component.datatable.DataTableRenderer.decode(DataTableRenderer.java:72) [primefaces-3.3.1.jar:]
Run Code Online (Sandbox Code Playgroud) 将 managedBean 的范围设置为 ViewScoped 时,出现以下错误。以下是我在尝试调用页面时遇到的异常
javax.faces.FacesException: java.io.NotSerializableException: javax.faces.model.ListDataModel
at com.sun.faces.renderkit.ResponseStateManagerImpl.getViewState(ResponseStateManagerImpl.java:137)
at javax.faces.application.StateManager.getViewState(StateManager.java:555)
at com.sun.faces.context.PartialViewContextImpl.renderState(PartialViewContextImpl.java:416)
at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:300)
at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:183)
at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:981)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:390)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.NotSerializableException: javax.faces.model.ListDataModel
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
Sep 26, 2012 4:01:13 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet Faces Servlet threw …Run Code Online (Sandbox Code Playgroud) 我有这个代码:
<h:form>
<h:commandLink value="Créer un compte" onclick="dlg3.show();"/>
</h:form>
<p:dialog id="modalDialoog" widgetVar="dlg3" draggable="false" resizable="false" dynamic="true" header="Inscription">
<center>
<p:panel id="xyzBody">
<h:form id="inscri-f">
<h:panelGrid id="loginPan" columns="2" bgcolor="White">
<h:outputText value="Nom d'utilisateur :" />
<p:inputText id="username" value="#{demandeBean.login}"></p:inputText>
<h:outputText value="Mot de passe :" />
<p:password id="pwd" value="#{demandeBean.pwd}"/>
<h:commandButton value="Envoyer demande" update=":inscri-f:cr"
actionListener="#{demandeBean.envoi_dde}"></h:commandButton>
<h:commandButton value="Retour" action="page1?faces-redirect=true"></h:commandButton>
<p:outputPanel id="cr">
<h:outputText rendered="#{demandeBean.saved}" value="#{demandeBean.message}"/>
</p:outputPanel>
</h:panelGrid>
</h:form>
</p:panel>
</center>
</p:dialog>
Run Code Online (Sandbox Code Playgroud)
我的问题是当我单击 commandLink 时显示“Créer un compte”对话框并且它很快消失。
我正在从primefaces 3.4迁移到primfaces 4.我在primefaces 3.4中创建了菜单栏,没有问题。这是豆子:
public MenuBean() {
MenuItem menuItem = new MenuItem();
Submenu submenu = new Submenu();
submenu.setLabel("Nos Solutions");
menuItem.setValue("Computers");
menuItem.setUrl("#");
submenu.getChildren().add(menuItem);
menuItem = new MenuItem();
menuItem.setValue("Clothes");
menuItem.setUrl("#");
submenu.getChildren().add(menuItem);
simpleMenuModel.addSubmenu(submenu);
submenu = new Submenu();
submenu.setLabel("Nos Problemes");
menuItem.setValue("Computers");
menuItem.setUrl("#");
submenu.getChildren().add(menuItem);
menuItem = new MenuItem();
menuItem.setValue("Clothes");
menuItem.setUrl("#");
submenu.getChildren().add(menuItem);
simpleMenuModel.addSubmenu(submenu);
submenu = new Submenu();
submenu.setLabel("Nos Solutions");
menuItem.setValue("Computers");
menuItem.setUrl("#");
submenu.getChildren().add(menuItem);
menuItem = new MenuItem();
menuItem.setValue("Clothes");
menuItem.setUrl("#");
submenu.getChildren().add(menuItem);
simpleMenuModel.addSubmenu(submenu);
submenu = new Submenu();
submenu.setLabel("Nos Solutions");
menuItem.setValue("Computers");
menuItem.setUrl("#");
submenu.getChildren().add(menuItem);
Submenu submenu1 = new Submenu();
submenu1.setLabel("Offres");
menuItem …Run Code Online (Sandbox Code Playgroud) 我需要使用Primefaces在单个XHTML页面上请求两种不同类型的确认对话框.Primefaces展示中的当前示例非常基本.以下是我的基本示例:
<h:form id="mydatatableform">
<p:dataTable ... />
<p:column ... headerText="Column A Data">
<h:outputText ... />
</p:column>
<p:column ... headerText="Acknowledge Docs">
<p:commandButton value="Acknowledge" ...
<p:confirm ajax="true" header="Confrimation" message="Do Acknowledge you have received the docs?"/>
</p:commandButton>
</p:column>
<p:column ... headerText="Accept or Deny">
<p:commandButton value="Accept or Deny" ...
<p:confirm ajax="true" header="Confrimation" message="Do you Accept or Deny the proposal?"/>
</p:commandButton>
</p:column>
</p:dataTable>
</h:form>
<p:confirmDialog id="yesno" global="true">
<h:form>
<p:commandButton value="Yes" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
<p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
</h:form>
</p:confirmDialog>
Run Code Online (Sandbox Code Playgroud)
好消息是这个工作得很好.
不幸的是,对于Accept或Deny问题的对话框中的选项,用户不希望是否.他们希望在对话框中接受或拒绝.
我找不到任何关于如何使用两个不同的confirmDialog选项或从一个或另一个中选择的方法的好例子.
理想情况下,第二个confrimDialog看起来像这样: …
我试图从像这样的窗体内的按钮更新我的xhtml中的元素"entryDiv":
<div id="entryDiv">
<div>
<h:form id="myForm">
<c:forEach items="#{foodPlanManagementBean.loadRestaurantsHistory()}" var="restaurantHistoryEntry">
<p:commandButton value="MyName" update="entryDiv"/>
</c:forEach>
</h:form>
</div>
Some more unrelated elements here...
</div>
Run Code Online (Sandbox Code Playgroud)
但是,这样我剩下的就是ComponentFoundException,告诉我组件无法找到:
Cannot find component for expression "entryDiv" referenced from "form:myForm:j_idt25".
Run Code Online (Sandbox Code Playgroud)
我已经阅读了一些关于SO的内容,我找到了一个解决方案,建议:在"entryDiv"前面放一个,但这并不能给我任何不同的结果.
我怎么能解决这个问题?
我想使用JSF(Primefaces)将数据从Excel复制并粘贴到Datatable.请建议我实现复制和粘贴的可能性.
我在PrimeFaces上工作,并且试图编辑组件的CSS属性。在咆哮时,我试图更改关闭图标的颜色,但我做不到。我尝试了很多,但仍然不知道。
您可以在右上角看到它的背景色为黄色(我将其设置为黄色,但无法更改图标颜色)。它总是那么蓝。这是我关于咆哮的代码;
.ui-growl{
position:fixed;
top:20%;
left:38%;
width: 23%;
}
.ui-growl .ui-state-highlight{
background: #d2524f;
border: #d2524f;
}
.ui-growl-message{
float: left;
font-size: 15px;
margin: 2% 0 0 22%;
}
.ui-growl .ui-growl-icon-close{
background-color:yellow;
}
Run Code Online (Sandbox Code Playgroud) 我有一个JSF ajax keydown事件链接到备用bean中的事件侦听器。
JSF文件中的代码如下。
<p:inputText value="#{someBean.value}>
<p:ajax event="keydown" listener="#{someBean.keyDownEvent}" />
</p:inputText>
Run Code Online (Sandbox Code Playgroud)
我想获取“输入”按钮事件代码。当我单击Enter时,我需要在服务器端执行一些特定的事件。如何使用ajax调用获取事件代码?