2013-12-19 82 views
1

我有以下Visualforce頁面,頂點類是控制器。 我想在輸入文本框中包含thid inputText1和InputText2的valus到以下頂點類中的相同變量。Salesforce - 不能將visualforce輸入文本值傳遞給頂點類

每次,apex類中的inputText1和inputText2都是null,我不知道爲什麼!我一直坐在它上面,我無法想象它爲什麼會發生!

請幫助我,因爲我對此感到絕望。

<apex:page controller="LoginPages" rendered="true" showHeader="false" sidebar="false" standardStylesheets="true"> 
<apex:Pagemessages id="msg"/> 
<apex:pageMessages ></apex:pageMessages> 
<apex:pageBlock > 
<apex:form > 
<p><b>Login Page</b><br /></p> 
<apex:panelGrid columns="2" style="margin-top:1em;"> 
<p><b>UserName</b><br /> 
<apex:inputtext required="true" id="inputText1" value="{!inputText1}"/> 
</p> 
<p><b>Password</b><br /> 
<apex:inputtext id="inputText2" value="{!inputText2}"/> 
</p> 
<apex:commandButton action="{!loginUser}" value="login" id="login" immediate="true"/> 
</apex:panelGrid> 
</apex:form> 
</apex:pageBlock> 

</apex:page> 




public class LoginPages{ 


    public String inputText1; 
    public String inputText2; 

    public String getInputText1(){ 
     return inputText1; 
    } 

    public void setInputText1(String str1){ 
     inputText1 = str1; 
    } 

     public String getInputText2(){ 
     return inputText2; 
    } 

    public void setInputText2(String str2){ 
     inputText1 = str2; 
    } 



    public PageReference registerUser() { 
     PageReference newPage = new PageReference('/apex/newPage'); 
     newPage.setRedirect(true); 
     return newPage; 
    } 

    public void loginUser() { 
     ApexPages.Message mymsg = new ApexPages.Message(ApexPAges.Severity.INFO, 'sdsdf' + inputText1); 
     apexpages.addMessage(mymsg); 
     // PageReference newPage = new PageReference('/apex/login'); 
     System.debug('sdfsdf' + inputText1);  

     List<User__c> users = [Select Name, Password__c from User__c Where Name = :inputText1]; 
     if (users.size() > 0){ 
      for (User__c user : users){ 
       if (user.Password__c == inputText2){ 
          //newPage.setAnchor('/apex/catalog'); 
         //newPage.setRedirect(true); 

       } 
      } 
     } 
     //return newPage; 

    } 
} 

回答

3

刪除immediate="true"。 「立即」導致沒有數據從表單傳遞到服務器。

而且 - 你可以寫你的變量有點簡單,然後你將不再需要明確getXYZ/setXYZ方法:

public String inputText1 {get;set;}

+0

非常感謝!我花了整整一天的時間! – user3119772