我需要在我的ajax请求中将参数传递给服务器.请参阅下面的代码.范围:查看范围
没有f:param
<p:column width="40">
<h:inputText id="originalCostInputTxt" value="#{articlePromo.costoBruto}"
<f:ajax event="change"
execute="@this"
listener="#{promotionDetailManagedBean.onCostoBrutoChange}">
</f:ajax>
</h:inputText>
</p:column>
Run Code Online (Sandbox Code Playgroud)
管理Bean
public final void onCostoBrutoChange(final AjaxBehaviorEvent event) {
createCostoBrutoOptions(promoArticlesList);
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,会调用onCostoBrutoChange()方法.但是,当我包含f:param时,它不会被调用.请参阅下面的代码.
用f:param
<p:column width="40">
<h:inputText id="originalCostInputTxt" value="#{articlePromo.costoBruto}"
<f:ajax event="change"
execute="@this"
listener="#{promotionDetailManagedBean.onCostoBrutoChange}">
<f:param value="#{articlePromo.promocionArticuloId}" name="myId"/>
</f:ajax>
</h:inputText>
</p:column>
Run Code Online (Sandbox Code Playgroud)
管理Bean
public final void onCostoBrutoChange(final AjaxBehaviorEvent event) {
createCostoBrutoOptions(promoArticlesList);
String id = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("myId");
}
Run Code Online (Sandbox Code Playgroud)
无法识别此代码中的错误.请指导.
谢谢,Shikha
我需要在点击按钮时添加一行到我的数据表 - " 添加员工 ".
数据表显示与bean中固定的Employees列表对应的记录.
我正在做的是,点击" 添加员工 "按钮,我将一个空的员工记录添加到empList.
有没有更好的方法来做到这一点?
谢谢.
Active Index未自动更新.通过将tabView放在可以使用的表单上来回顾一些帖子.或者通过<p:ajax event="tabChange"/>
在tabview中包含它是有效的.但似乎没有任何效果
XHTML
示例1:自动更新
<p:tabView id="categoryTabView" var="promoArticle" value="#{promotionDetailBean.artDTOs}" activeIndex="#{promotionDetailBean.activeTabIndex}">
<p:tab id="categoriesTab" title="#{promoArticle.categoryName}">
<p:dataTable id="promotionDetail_dataTable" var="articlePromo" value="#{promoArticle.artVO}" selection="#{promotionDetailBean.selectedArt}" rowIndexVar="rowIndex">
<p:column id="select" selectionMode="multiple" />
<p:column id="barCode">
<h:inputText id="barCodeInputTxt" value="#{articlePromo.barCode}"
styleClass="inputTextStyle" onchange="onSuggestedValueChange('categoryTabView',#{promotionDetailBean.activeTabIndex}, 'promotionDetail_dataTable',#{rowIndex},'originalCostInputTxt')" />
</p:column>
</p:dataTable>
</p:tab>
</p:tabView>
Run Code Online (Sandbox Code Playgroud)
示例2:更新tabChange事件
<h:form id="form">
<p:growl id="growlm" showDetail="true" />
<p:tabView id="categoryTabView" var="promoArticle" value="#{promotionDetailBean.artDTOs}" >
<p:ajax event="tabChange" listener="#{promotionDetailBean.tabChanged}" update=":growlm" />
<p:tab id="categoriesTab" title="#{promoArticle.categoryName}">
<p:dataTable id="promotionDetail_dataTable" var="articlePromo" value="#{promoArticle.artVO}" selection="#{promotionDetailBean.selectedArt}" rowIndexVar="rowIndex">
<p:column id="select" selectionMode="multiple" />
<p:column id="barCode">
<h:inputText id="barCodeInputTxt" value="#{articlePromo.barCode}"
styleClass="inputTextStyle" onchange="onSuggestedValueChange('categoryTabView',#{promotionDetailBean.activeTabIndex}, 'promotionDetail_dataTable',#{rowIndex},'originalCostInputTxt')" />
</p:column>
</p:dataTable>
</p:tab> …
Run Code Online (Sandbox Code Playgroud) 我有一个BookingDateRange列表,其中BookingDateRange是:
public class BookingDateRange {
private Date fromDate;
private Date toDate;
//getters & setters of properties
}
Run Code Online (Sandbox Code Playgroud)
需求:
例1:
输入1:
dateRangeList [0] = 2012年12月23日至2012年12月27日
dateRangeList [1] = 2012年12月14日 - 2012年12月25日
dateRangeList [2] = 2012年1月1日 - 2012年1月23日
输出1:
isOverlappingDates = true
overlapDatePairs = [0_1]
例2:
输入2:
dateRangeList [0] = 2012年12月23日至2012年12月27日
dateRangeList [1] = 2012年1月1日 - 2012年1月23日
输出2:
isOverlappingDates = false
overlapDatePairs = []
我的解决方案
/**
* Checks if any of the dates overlap.
*
* @param …
Run Code Online (Sandbox Code Playgroud) 需要捕获具有基于复选框的行选择的dataTable的rowSelect事件.代码如下:
<p:ajax event="rowSelect" listener="#{articleBean.onRowSelect}"
oncomplete="articleBean.onSelection" />
<p:ajax event="rowUnselect" listener="#{articleBean.onRowUnselect}"
oncomplete="articleBean.onSelection" />
<p:column id="name" headerText="Select" selectionMode="multiple"
style="width:18px" />
Run Code Online (Sandbox Code Playgroud)
我无法理解这种行为.当我第一次单击复选框时,将调用方法"onRowSelect".当我取消选择时,"onRowUnselect"不会被调用.而且,"onRowSelect"方法只为网格调用一次,如果我单击任何其他复选框,则事件不会被触发.我错过了什么吗?无法理解这种行为.
我有一个CRUD应用程序..在数据的提取位置,显示n编辑n存储回db.页面之间还有顺序访问,第二页上需要输入第一页上输入的信息,依此类推.什么是最好的范围和原因?
何时使用哪个范围?每个范围的生命周期是什么.
另外,我找不到任何关于范围的好教程.如果您知道相同的情况,请指导.
谢谢,Shikha
我正在使用primefaces的日历组件.我在VO中有一个相应的字符串.在保存数据库时,我需要将字符串转换为java.sql.date.
xhtml:
<p:calendar value="#{articlePromo.startDate}"
id="vendorStartDateInputTxt" pattern="dd/MM/yyyy" mode="popup" showOn="button">
<f:convertDateTime type="date" dateStyle="short" pattern="dd/MM/yyyy" />
</p:calendar>
Run Code Online (Sandbox Code Playgroud)
startDate(String)的值为:Sat Apr 21 05:30:00 IST 2012
Java方法获取sql Date
public static Date getSQLDate(String strDate) {
java.sql.Date sqlDate = null;
try {
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
java.util.Date dt = formatter.parse(strDate);
sqlDate = new java.sql.Date(dt.getTime());
} catch (Exception e) {
e.printStackTrace();
}
return sqlDate;
}
Run Code Online (Sandbox Code Playgroud)
在转换日历的java.util.date时,我使用了模式dd/MM/yyyy.但它转换成的日期是:2012年4月21日星期六05:30:00.
谢谢,Shikha
我需要对数据表进行条件分页,也就是说,只有当记录数>> 5时才需要添加分页.
原因是当分页包含在数据表中时,它占据屏幕上一行的空间.在最大的情况下,行数仅为5.因此,目的是为这些大多数情况节省屏幕空间.
我在一个方法中一次又一次地使用相同的变量并且多次将它引用到一个新对象.从垃圾收集方面来看,它是一个很好的做法,在使它引用一个新对象之前使其无效.
例:
StopWatch watch = new StopWatch();
watch.start();
//some code
watch.stop();
//some code
watch = null;
watch = new StopWatch();
watch.start();
//some code
watch.stop();
//some code
Run Code Online (Sandbox Code Playgroud)
在这种情况下,不确定是否使其无效会对GC产生影响.请指导.
谢谢!
我正在使用Quartz Scheduler运行一些计划的作业。我的应用程序中的所有作业都是JobDetailBean作业。
我知道使用MethodInvokingJobDetailFactoryBean,我们可以使作业像这样并发:
<property name="concurrent"><value>false</value></property>
Run Code Online (Sandbox Code Playgroud)
我想知道如何使JobDetailBean作业非并行。默认情况下,JobDetailBean作业并发运行。
要求是:jobA需要每5分钟运行一次,但前提是前一个实例已经完成。
谢谢,
什卡