2016-08-29 3 views
0

ビュースコープでJSFページとBeanを作成しました。私は<h:textarea>でbeanの値を設定できません。私のコード(豆やXHTML)で以下にh:inputtextでbeanに値を設定できません

Beanクラス:

@ManagedBean 
@ViewScoped 
//@SessionScoped 
public class ItemDetailsBean { 
    private CmsItemEJBDTO item; 
    private CmsItemEJBDTO detailItem; 
    private CmsCartEJB cart; 
    private int quantity; 
    private int itemId; 
    private boolean question = false; 

    private String userItemQuery; 

    public ItemDetailsBean() { 
     itemId = 0; 
     quantity = 1; 
    } 
    @EJB 
    private ShopManagerRemote shopManager; 
    @ManagedProperty(value="#{loginBean}") 
    private LoginBean login; 
    @ManagedProperty(value="#{shoppingCart}") 
    private ShoppingCart shoppingCart; 

    @PostConstruct 
    public void init(){ 

     if(login.getProfile()!=null){ 

      question=true; 
     }else{ 
      question=false; 
     } 
    } 

    public String getUserItemQuery() { 
     System.out.println("getUserItemQuery => "+userItemQuery); 
     return userItemQuery; 
    } 

    public void setUserItemQuery(String userItemQuery) { 
     System.out.println("setUserItemQuery(String userItemQuery) => "+userItemQuery); 
     this.userItemQuery = userItemQuery; 
    } 

    public void submitItemQuestion(){ 
     try{ 
      System.out.println("Queston::::::: " + userItemQuery); 
      if(userItemQuery!=null){ 

      shopManager.saveItemQuestion(shoppingCart.getShop().getShopId(), itemId, login.getProfile(), userItemQuery); 
      }else{ 

       System.out.println("UserItemQuery is null............"); 
      } 
     }catch(Exception e){ 
      System.out.println("Exception while submitting item question"); 
      e.printStackTrace(); 

     }  
    } 
    public boolean isQuestion() { 
     System.out.println("question in isQuestion() = "+ question); 
     return question; 
    } 

    public void setQuestion(boolean question) { 

     System.out.println("question in setQuestion(boolean question) = "+ question); 
     this.question = question; 
    } 







} 

XHTMLコード:

<div class="category-tab shop-details-tab"><!--category-tab--> 
         <div class="col-sm-12"> 
          <ul class="nav nav-tabs"> 
           <li class="active"><a href="#details" data-toggle="tab">Ask Question</a></li> 

          </ul> 
            <h:commandButton action="#{itemDetailsBean.askItemQuestionListner}" value="Ask Question" id="dialogbtn" styleClass="btn btn-primary btn-detault" style="float:right;" > 
             <f:param name="itemId" value="#{itemDetailsBean.itemId}"></f:param> 
             <f:param name="question" value="true"></f:param> 
             <f:ajax execute="@this" update= "question" /> 
            </h:commandButton> 
         </div> 

           <h:panelGroup> 
           <p:panel rendered="#{itemDetailsBean.question}"> 
           <div class="col-sm-7" id="question"> 

           <h1>Enter Your Questions Here!!!</h1> 
           <h:inputTextarea value="#{itemDetailsBean.userItemQuery}" /> 

            <h:commandButton styleClass="btn btn-primary btn-detault" value="Submit Answer" > 
            <f:param name="itemId" value="#{itemDetailsBean.itemId}"></f:param> 
            <f:ajax execute="@this" render="@form" listener="#{itemDetailsBean.submitItemQuestion()}" ></f:ajax> 
            </h:commandButton> 



           </div> 
          </p:panel> 
          </h:panelGroup> 

        </div> 

textareaタグは常にgetUserItemQuery()メソッドを呼び出しています。それを理解するのを助けてください。

答えて

0

フォーム内にinputTextAreaとcommandButtonをラップします。

<h:form> 
    <h:inputTextarea value="#{itemDetailsBean.userItemQuery}" /> 

    <h:commandButton styleClass="btn btn-primary btn-detault" value="Submit Answer" > 
           <f:param name="itemId" value="#{itemDetailsBean.itemId}"></f:param> 
           <f:ajax execute="@form" render="@form" listener="#{itemDetailsBean.submitItemQuestion()}" ></f:ajax> 
    </h:commandButton> 
</h:form> 
+1

'

+0

親愛なる、それは私が先頭でフォームを使用しています、formタグ内に既に存在する:Ajaxは "これは@" '' user3180510

+0

@ user3180510:そのようなものを投稿してください。常に[mcve] – Kukeltje

関連する問題