2013-10-20 40 views
0

我刚刚更改了用户输入数据的方式,从使用<h:<:p来自primefaces库,现在当数据已成功添加到数据库时,它不再自动将用户相关页面。只有我所做的更改是不是使用下面的代码输入数据:完成后未导航到网页

<h:messages showDetail="true" /> 

<h:outputText value="Enter Name : " /> 
<h:inputText value="#{user.name}" /> 
<br></br>    
<h:outputText value="Enter email address : "/> 
<h:inputText id="email" value="#{user.email}" 
    size="20" required="true" label="Email Address"> 
    <f:validator validatorId="richard.test.EmailValidator" /> 
</h:inputText> 
<br></br> 
<h:outputText value="Enter your address : "/> 
<h:inputText value="#{user.address}" /> 
<br></br> 

<h:outputText value="Enter Created Date : "/> 
<h:inputText value="#{user.created_date}"> 
    <f:convertDateTime pattern="yyyy-MM-dd"/> 
</h:inputText> 
<br></br> 

<br></br> 
<h:message for="email" style="color:red" /> 

<h:commandButton value="Insert" action="#{user.add}"/> 

如果我运行上面的代码仍然有效,与其下面的代码:

<h:form> 
    <p:growl id="growl" showDetail="true" sticky="true" /> 

    <p:panel header="Growl"> 
     <h:panelGrid columns="2"> 
      <h:outputText value="Enter Name : " /> 
      <h:inputText value="#{user.name}" required="true" /> 

      <h:outputText value="Enter email address : " /> 
      <h:inputText id="email" value="#{user.email}" size="20" required="true" label="Email Address"> 
       <f:validator validatorId="richard.test.EmailValidator" /> 
      </h:inputText> 
      <h:outputText value="Enter your address : " /> 
      <h:inputText value="#{user.address}" /> 

      <h:outputText value="Enter Created Date : " /> 
      <h:inputText value="#{user.created_date}"> 
       <f:convertDateTime pattern="yyyy-MM-dd" /> 
      </h:inputText> 
     </h:panelGrid> 

     <p:commandButton value="Save" actionListener="#{user.add}" update="growl" /> 
    </p:panel> 
</h:form> 

<h:form> 
    <h:messages showDetail="true" /> 
</h:form> 

背后的原因变化是使用户更好看,但同时它看上去很专业,所有的数据添加到数据库中,不再向用户发送到一个页面成功等,虽然faces-config.xml文件并没有改变。唯一的变化是使用primefaces。什么会导致这种情况,并且是否有成功输入数据的方法来将用户带到正确的页面?

谢谢。

回答

2

您的号码:调用的commandButton作为user.add的ActionListener,而不是像的H行动:在的commandButton你的第一个例子。只需切换到行动,这应该导致你想要它的行为。

+0

由于已经做的伎俩很多! – user1924104

+0

我的回答有什么问题(之前几分钟发布)? – Lester

0

如果您想要使用JSF的隐式导航更改actionListener-在<p:commandButton>action的属性。而已。