JSF页面-为什么尚无验证需要处理属性? [英] JSF page - Why no validations yet process attribute required?
问题描述
以下基于JSF的xhtml页面的命令按钮的actionListener
事件不起作用.我在页面上没有任何验证.仅当我将属性process="@this"
添加到按钮标签时,该事件才起作用.由于没有验证,因此我什至没有得到任何验证错误.但是使用process属性,我得到了Java边处理程序方法返回的成功消息.所以我有点卡住了,没有不需要的进程属性.
The command button's actionListener
event of the following JSF based xhtml page does not work. I do not have any validations on the page. The event only works when I add attribute process="@this"
to button tag. As there are no validations, so I do not even get any validation error. But with process attribute I get success message returned by java side handler method. So I am kind of stuck without unwanted process attribute.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body style="margin:0 auto !important;width:80% !important;">
<h:form id="form1">
<p:panel id="rootPanel"
style="background-color:#E8E8E8 ;width=90%;padding:10px;margin:10px;border:2px solid black;">
<p:panel id="logoHeaderPanel"
style="background-color:#E8E8E8 ;width=70%;padding:30px;margin:30px;border:1px solid black;">
<h:panelGrid columns="2">
<h:graphicImage library="images" name="./headerImage.gif" />
<h:outputLabel style="font-size:2.1em;margin-left:30px"
value="Demo App" />
</h:panelGrid>
</p:panel>
<p:messages id="messages" autoUpdate="true"/>
<p:panel id="mainContentPanel"
style="background-color:#E8E8E8 ;width=70%;padding:60px;margin:30px;border:1px solid black;">
<h:panelGrid columns="4">
<h:outputLabel for="a" value="State Search" style="margin:10px;" />
<p:inputText id="a" value="" style="margin:10px;" />
<h:outputLabel for="b" value="Value" style="margin:10px;" />
<p:inputText id="b" value="" style="margin:10px;" />
<h:outputLabel for="c" value="City Search" style="margin:10px;" />
<p:inputText id="c" value="" style="margin:10px;" />
<h:outputLabel for="d" value="Value" style="margin:10px;" />
<p:inputText id="d" value="" style="margin:10px;" />
</h:panelGrid>
<h:panelGrid columns="2" style="float:right;">
<p:commandButton style="height:80px;" value="Generate Report"
id="reporting" actionListener="#{sampleBean.handlerMethod}" update="a"/>
</h:panelGrid>
</p:panel>
</p:panel>
</h:form>
</h:body>
</html>
Java辅助代码
public void handlerMethod(ActionEvent actionEvent) {
System.out.println("Inside Listener");
FacesContext.getCurrentInstance().addMessage(
null,
new FacesMessage("Success! Action called."));
}
推荐答案
您不能在p:inputText
中使用value=""
.如果不想指定值,则应删除属性value=""
.
You cannot use value=""
in the p:inputText
. If you do not want to specify value, you should remove attribute value=""
.
<p:inputText id="a" style="margin:10px;" />
这篇关于JSF页面-为什么尚无验证需要处理属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!