<h:form id="formServicesTab">
<h:panelGrid id="pnlSvcTab" columns="1" styleClass="valignTop" width="100%">
<p:dataGrid id="dgServices" var="service"
value="#{subMerchantOperations.subMerchantServices}"
columns="1" width="100%" styleClass="valignTop"
emptyMessage="#{messagebundle.submerc_grdlabel_no_service}" transient="true"
rowIndexVar="index" >
<p:toolbar>
<p:toolbarGroup align="left">
<p:commandButton id="btnRemoveSvc" onclick="loading.show();"
oncomplete="loading.hide();"
value="#{messagebundle.submerc_btn_delete_service}"
actionListener="#{subMerchantOperations.removeService}"
process="@form" update="@form">
<f:setPropertyActionListener target="#{subMerchantOperations.serviceRowIndex}" value="#{index}" />
</p:commandButton>
</p:toolbarGroup>
</p:toolbar>
<h:panelGrid columns="3" styleClass="valignTop" width="100%" bgcolor="F0F0F0">
<p:panel style="background:#F0F0F0;">
<h:panelGrid id="pnlDgSvc" columns="1" width="100%" style="height:100%">
<h:outputText value="#{messagebundle.submerc_label_svc_shortName}" />
<h:panelGrid columns="2">
<p:inputText id="txtSvcName" value="#{service.serviceName}"
required="true" transient="true"
requiredMessage="#{messagebundle.submerc_validation_msg_required}"
converter="UpperCaseConverter" />
<p:message for="txtSvcName" display="text" />
</h:panelGrid>
<h:outputText value="#{messagebundle.submerc_label_svc_website}" />
<p:inputText value="#{service.serviceUrl}" transient="true"/>
</h:panelGrid>
</p:panel>
<p:panel style="background:#F0F0F0;">
<h:panelGrid columns="1" width="100%">
..........
</h:panelGrid>
</p:panel>
<p:panel style="background:#F0F0F0;">
<h:panelGrid id="pgSvcFiles" columns="1" width="100%">
...........
</h:panelGrid>
</p:panel>
</h:panelGrid>
</p:dataGrid>
</h:panelGrid>
<p:toolbar style="background:white">
<p:toolbarGroup align="left">
<p:commandButton id="btnAddNewSvc"
value="#{messagebundle.submerc_btn_addSvc}"
actionListener="#{subMerchantOperations.addNewService}"
process="@form" update="@form" />
<p:commandButton id="btnSaveSubM"
value="#{messagebundle.submerc_btn_sendApproval}"
action="#{subMerchantOperations.saveServices}"
process="@form" update="@form" />
</p:toolbarGroup>
</p:toolbar>
</h:form>
@ManagedBean
@ViewScoped
public class SubMerchantOperations implements Serializable {
private static final long serialVersionUID = 8556103952857187080L;
private List<Service> subMerchantServices = new ArrayList<Service>();
private int serviceRowIndex;
// add new empty service to the service list
public void addNewService() {
try {
Service svc = new Service();
svc.setStartDate(new Date());
getSubMerchantServices().add(svc);
}
catch(Exception ex) {
if (logger.isEnabledFor(Level.ERROR)) {
...
}
}
}
// Remove the specified service using index parameter got from the datagrid
public void removeService() {
try {
getSubMerchantServices().remove(serviceRowIndex);
}
catch(Exception ex) {
...
}
}
// DB Operations
public String saveSubMerchant() {
...
}
public List<Service> getSubMerchantServices() {
return subMerchantServices;
}
public void setSubMerchantServices(List<Service> subMerchantServices) {
this.subMerchantServices = subMerchantServices;
}
public int getServiceRowIndex() {
return serviceRowIndex;
}
public void setServiceRowIndex(int serviceRowIndex) {
this.serviceRowIndex = serviceRowIndex;
}
}
我不知道
属性在
上做什么。我已经查看了Primefaces PDF文档的最新发布版本,但这并不是一个有效属性。
如果您发现基于Facelet的组件验证会导致空表单在提交某个按钮时触发验证错误,那么您可以考虑在支持bean中创建一个由submit方法调用的方法,并验证bean上元素的状态。这是Primefaces的一种流行方法,因为与seam
不同,我们没有提供表单级验证。
但是,请检查一下您对immediate=true的理解。
或者,您可以考虑使用JSR303注释来注释POJO的属性。
由于您使用的是集合,请确保您的服务POJO重写equals
和hashcode
,以排除您的集合没有发生什么错误并导致您的问题。
请看下图。 图像 这些图像显示了我当前代码的工作方式。当我删除最后一个面板并按下update按钮时,所有面板不知何故都消失了。当我对其余的面板做同样的操作时,它工作得很好。 如果有人知道如何解决这些问题,那将是一个很大的帮助。提前道谢。 “XHTML” “ManagedBean”包示例;
问题内容: 我在MSSQL2005中有下表 现在我想根据business_key分组,返回具有最高ID的完整条目。所以我的预期结果是: 我敢打赌,有一种方法可以实现这一目标,但目前我还看不到。 问题答案: 替代解决方案,可能会给您带来更好的性能(双向测试并检查执行计划): 该查询假定该ID是唯一值(至少对于任何给定的business_key而言),并将其设置为NOT NULL。
问题内容: 在对象上执行“ foreach”时,我想对上一次循环迭代做一些不同的事情。我正在使用Ruby,但对于C#,Java等也是如此。 所需的输出等效于: 显而易见的解决方法是使用将代码迁移到for循环,但是for每个解决方案都感觉更优雅。在循环中编码特殊情况的最优雅方式是什么?可以用foreach完成吗? 问题答案: 如何先获取对 最后一项* 的 引用 ,然后在foreach循环中将其用于比
问题内容: 我只是想知道如何使用PHP提取URL的最后一部分。 示例URL是: 现在如何使用PHP提取最后一部分? URL中始终有相同数量的变量,并且id始终在末尾。 问题答案: 您可以使用来匹配所需的URL部分。 在这种情况下,由于该模式很简单,因此我们正在寻找一个正斜杠(并且由于正斜杠表示正则表达式模式的开始和结束,因此我们必须对其进行转义),以及一个或多个数字()字符串()的末尾。圆括号用于
每次作业运行时,都在从不断增长的现有表中读取数据。我正在寻找Spring batch中的选项,以便在每次运行调度作业时只查询新记录。 如果我读了50000条记录,下一个时间表应该从50001开始。 我的想法是将ItemReader读取的最后一条记录的id(整个读卡器输出的最后一条,而不是每个块的最后一条)保存在DB中,并在后续的作业计划中使用。我将从主表返回按id排序的数据。 我怎么知道作者最后的
我对使用PrimeFaces 3.4.1和JSF 2.1.6的dataTable有以下问题。第一次加载页面时,数据表中充满了数据库中的数据,但每当在页面上执行操作(编辑链接、数据表排序或过滤)时,数据表就会丢失其数据。DataTable包含来自此类的元素: 在dataTable上执行操作后进行调试时,我们只在envioDatasujeto字段上保留数据,元素上的其他所有数据都会丢失。 这是xhtm