2013-12-19 50 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