我一直遇到标签问题<f:facet>.我正在使用它的其他代码示例,但我不确定它的用途是什么.
我已经编写了一些代码,这些代码在方法上与我见过的其他代码完全相同,除非它包含在<f:facet name=actions>标记中.当我在我的代码周围添加它时,我正在包装它的下拉框在我部署时消失.任何人都可以为此提出建议或让我深入了解如何以及何时使用方面?
这是我的代码,我不打扰添加bean代码,因为它们只是基本的getter和setter,我不认为它们会造成麻烦.
<f:facet name="actions">
<p:selectOneMenu id="SwitchWeekDrpDwnMenu"
value="#{depotWorkloadBean.selectView}"
partialSubmit="true">
<p:ajax update="mainForm"
listener="#{depotWorkloadBean.updateView}" />
<f:selectItem itemLabel="Day view" itemValue="Day"/>
<f:selectItem itemLabel="01/01/2014" itemValue="Week"/>
</p:selectOneMenu>
</f:facet>
Run Code Online (Sandbox Code Playgroud)
如果我删除了facet标签,则显示下拉框,但不能正常运行.
我想UIComponent通过我提供的id从托管bean中找到一些.
我写了以下代码:
private UIComponent getUIComponent(String id) {
return FacesContext.getCurrentInstance().getViewRoot().findComponent(id) ;
}
Run Code Online (Sandbox Code Playgroud)
我已经定义了一个p:inputTextarea:
<p:inputTextarea id="activityDescription" value="#{adminController.activityDTO.activityDescription}" required="true" maxlength="120"
autoResize="true" counter="counter" counterTemplate="{0} characters remaining." cols="80" rows="2" />
Run Code Online (Sandbox Code Playgroud)
现在,如果在getUIComponent("activityDescription")返回方法时调用该方法null,但如果我将其调用,getUIComponent("adminTabView:activityForm:activityDescription")那么我可以获取该org.primefaces.component.inputtextarea.InputTextarea实例.
有没有办法让组件只有id,即"activityDescription"不是绝对id,即"adminTabView:activityForm:activityDescription"?
我在视图中有一个表单,它执行自动完成和gmap本地化的ajax部分处理.我的支持bean实例化一个实体对象"Address",并且该对象引用了表单的输入:
@ManagedBean(name="mybean")
@SessionScoped
public class Mybean implements Serializable {
private Address address;
private String fullAddress;
private String center = "0,0";
....
public mybean() {
address = new Address();
}
...
public void handleAddressChange() {
String c = "";
c = (address.getAddressLine1() != null) { c += address.getAddressLine1(); }
c = (address.getAddressLine2() != null) { c += ", " + address.getAddressLine2(); }
c = (address.getCity() != null) { c += ", " + address.getCity(); }
c = (address.getState() != null) { …Run Code Online (Sandbox Code Playgroud) 我搜索过互联网,但找不到<p:ajax>活动清单.任何人都可以提供<p:ajax>标签的完整事件列表吗?
如果有onblur事件或类似事件我特别感兴趣.
我发现这篇文章对非ajax请求有用如何在JSF 2中处理会话过期和ViewExpiredException? 但是当我使用AJAX调用提交时,我无法使用它.
假设在一个primefaces对话框中,我正在使用AJAX发布一个post请求,session已经超时了.我看到我的页面卡住了.
如何解决这种情况的,这样当我POST使用AJAX,我可以重定向他对我的看法过期的页面,然后转发他类似于上面的链接解决方案登录页面?
JSF2/Primefaces/Glassfish的
我正在使用JSF 2.0,我正在寻找一个在性能方面负载最小的copmponent库.如果我在RichFaces和PrimeFaces之间做出选择,哪一个更好用?两者的优点和缺点是什么?
在使用Google PageSpeed分析JSF 2.1 + PrimeFaces 4.0 webapp的性能时,它建议推迟解析JavaScript文件.在一个测试页面<p:layout>,并用表格<p:watermark>和<p:fileUpload>它看起来像如下...
<p:layout>
<p:layoutUnit position="west" size="100">Test</p:layoutUnit>
<p:layoutUnit position="center">
<h:form enctype="multipart/form-data">
<p:inputText id="input" />
<p:watermark for="input" value="watermark" />
<p:focus for="input" />
<p:fileUpload/>
<p:commandButton value="submit" />
</h:form>
</p:layoutUnit>
</p:layout>
Run Code Online (Sandbox Code Playgroud)
...它列出了可以推迟的以下JavaScript文件:
primefaces.js (219.5KiB)jquery-plugins.js (191.8KiB)jquery.js (95.3KiB)layout.js (76.4KiB)fileupload.js (23.8KiB)watermark.js (4.7KiB)它链接到此Google开发人员文章,其中解释了延迟加载以及如何实现它.你基本上需要<script>在onload事件期间动态创建所需的window.在最简单的形式下,旧的和错误的浏览器被完全忽略,它看起来像这样:
<script>
window.addEventListener("load", function() {
var script = document.createElement("script");
script.src = "filename.js";
document.head.appendChild(script);
}, false);
</script>
Run Code Online (Sandbox Code Playgroud)
好吧,如果您可以控制这些脚本,这是可行的,但所列出的脚本都被JSF强制自动包含.此外,PrimeFaces呈现一堆内嵌的脚本到HTML被直接调用输出$(xxx)从 …
我正在尝试使用PrimeFaces和JSF组件实现jQuery,但它无法正常工作.当我尝试用HTML标签做同样的事情时,它正常工作.
以下是带有HTML标记的代码,它可以与jQuery一起使用:
<input type="checkbox" id="check2"></input>
<h:outputText value="Check the box, if your permanent address is as same as current address."></h:outputText>
<h:message for="checkbox" style="color:red" />
Run Code Online (Sandbox Code Playgroud)
同
$("#check2").change(function() {
if ($("#check2").is(":checked")) {
$("#p2").hide();
} else {
$("#p2").show();
}
});
Run Code Online (Sandbox Code Playgroud)
以下是使用PrimeFaces/JSF的代码,它与jQuery无法正常工作:
<p:selectManyCheckbox >
<f:selectItem itemLabel="1" value="one" id="rad" ></f:selectItem>
</p:selectManyCheckbox>
Run Code Online (Sandbox Code Playgroud)
同
$("#rad").change(function() {
if ($("#rad:checked").val() == "one") {
$("#p2").hide();
} else {
$("#p2").show();
}
});
Run Code Online (Sandbox Code Playgroud) 我使用Primefaces使我的应用程序更美观.我注意到了,p:commandButton并h:commandButton没有以同样的方式工作.
该p:commandButton呼叫的方式,没有别的hapens.该h:commandButton调用方法和返回导航.
使用后按下登录按钮后我遇到重定向问题p:commandButton.怎么处理?
我有一个更新参数:
<p:commandButton value="Login" action="#{login.login}" type="submit" update="msgs" />
Run Code Online (Sandbox Code Playgroud) 我们要求向用户提供两个p:calendar组件,每个组件代表一个开始和结束日期.两个日期时间都有日期,小时和分钟.PrimeFaces具有完善的mindate,maxdate,minHour,maxHour,minMinute,和minMinute属性可用.
现在的要求是:
无法将开始日期时间设置为大于或等于结束日期时间.将结束日期时间设置为小于或等于结束日期时间是不可能的.
以下等式应该成立:
begin datetime < end datetime
Run Code Online (Sandbox Code Playgroud)
现在我们尝试了以下JSF:
<p:calendar id="begin-date"
value="#{debugManager.selectedBeginDate}"
mindate="#{debugManager.minBeginDate}"
maxdate="#{debugManager.maxBeginDate}"
maxHour="#{debugManager.maxBeginHour}"
maxMinute="#{debugManager.maxBeginMinute}"
pattern="yyyy-MM-dd HH:mm"
showButtonPanel="true"
readonlyInput="true"
navigator="true"
showOn="button"
required="true">
<p:ajax event="dateSelect" update="end-date" />
</p:calendar>
<p:calendar id="end-date"
value="#{debugManager.selectedEndDate}"
mindate="#{debugManager.minEndDate}"
minHour="#{debugManager.minEndHour}"
minMinute="#{debugManager.minEndMinute}"
pattern="yyyy-MM-dd HH:mm"
showButtonPanel="true"
readonlyInput="true"
navigator="true"
showOn="button">
<p:ajax event="dateSelect" update="begin-date" />
</p:calendar>
Run Code Online (Sandbox Code Playgroud)
这是一个示例性的最小/最大方法(结束日期):
public Date getMinEndDate()
{
return this.getSelectedBeginDate();
}
Run Code Online (Sandbox Code Playgroud)
如您所见,最小结束日期是当前AJAX选择的开始日期.正确设置结束日期不允许将开始日期设置为结束日期.
当把时间纳入等式时问题就开始了......
由于p:calendar的接口有单独的方法,bean必须提供逻辑:
public int getMinEndHour()
{
Date selectedBeginDate = this.getSelectedBeginDate();
Date selectedEndDate = …Run Code Online (Sandbox Code Playgroud) primefaces ×10
jsf ×9
jsf-2 ×6
ajax ×4
calendar ×1
facet ×1
java ×1
javascript ×1
jquery ×1
richfaces ×1
uicomponents ×1
validation ×1
xhtml ×1