2016-11-02 7 views
0

primefaces 5.2ダイアログフレームワークを使用して、バッキングビーンからダイアログをポップアップしています。そのダイアログは簡単なログインフォームで表示されます。Primefaces 5.2ダイアログフォームが送信されない

main.xhtmlとして:

<h:form prependId="false"> 
    ...... 
    <p:commandButton value="#{apps['application.sec.login']}" immediate="true" actionListener="#{loginControlBean.fireLoginDialog}" icon="fa fa-fw fa-sign-in" /> 
    ..... 
</h:form> 

バッキングBeanのLoginControlBean.javaとして:

@Named(value = "loginControlBean") 
@SessionScoped 
public class LoginControlBean implements Serializable{ 
    private static final Logger logger =Logger.getLogger(LoginControlBean.class.getName()); 
    @Inject 
    private StaffSession staffSession; 
    /* ... get/set pairs ...*/ 
    ...... 
    public void fireLoginDialog() { 
    Map<String,Object> options = new HashMap<String, Object>(); 
    options.put("modal", true); 
    options.put("draggable", false); 
    options.put("resizable", false); 
    RequestContext.getCurrentInstance().openDialog("/sec/login", options, null); 
    } 
    ....... 
    public void login(ActionEvent event) { 
    logger.info("Passed in information: User name: "+staffSession.getTempUserName()+" Password: "+staffSession.getTempPassword()); 
    ....... 
    } 

login.xhtmlとして:適切

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets" 
    xmlns:f="http://xmlns.jcp.org/jsf/core" 
    xmlns:p="http://primefaces.org/ui" 
    xmlns:h="http://xmlns.jcp.org/jsf/html"> 
<h:head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<h:outputStylesheet library="css" name="default.css"/> 
<h:outputStylesheet library="css" name="cssLayout.css"/> 
<title>Staff Login</title> 
</h:head> 
<h:body> 
<ui:composition> 
    <h:form id="loginform"> 
     <p:growl id="logingrowl" sticky="true" showDetail="true" life="60000" /> 
     <h:panelGrid columns="2" cellpadding="5"> 
      <h:outputLabel for="username" value="#{apps['application.sec.username']}" /> 
      <p:inputText id="username" value="#{staffSession.tempUserName}" required="true" label="username" /> 

      <h:outputLabel for="password" value="#{apps['application.sec.password']}" /> 
      <p:password id="password" value="#{staffSession.tempPassword}" required="true" label="password" /> 

      <f:facet name="footer"> 
       <p:commandButton process="@form" value="Login" update="logingrowl" actionListener="#{loginControlBean.login}"/> 
      </f:facet> 
     </h:panelGrid> 
    </h:form> 
</ui:composition> 
</h:body> 
</html> 

ダイアログポップアップとI入力ユーザ名前とパスワードを入力し、ログインボタンを押します。私は、ログ私のバックエンド(サーバー側)で例外が発生しました:フォームのフィールドに記入

####<Nov 2, 2016 5:20:10 PM AEDT> <Info> <com.longz.ozssc.web.staff.LoginControlBean> <macmini16g.tweedheadstorage.com.au> <OzsscWEBServer> <[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <49d77419-9b42-461a-92bb-25b06f512a63-0000001d> <1478067610444> <[severity-value: 64] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] > <BEA-000000> <Passed in information: User name: null Password: null> 

がstaffSessionに結合していたが、私は豆のstaffSessionをバックアップから値にアクセスしようとしたとき、残念ながら、それは「nullがあります"フォームの送信が機能していないようです。

+0

あなたは 'ajax'イベントを追加しようとしたのですか?!? –

+0

ajaxはデフォルトで有効になっています。私はそれを有効にする必要がありますか? –

+0

'immediate'を削除してajaxイベントを試してください –

答えて

0

入力フィールドの値を正しく設定しませんでした。

value="#{staffSession.tempUserName}" 

あなたが値にBeanを追加する必要があります。

value="#{loginControllBean.staffSession.tempUserName}" 
+0

ありがとうございました。それは今働く。 –

関連する問題