Salesforce - 无法将visualforce inputtext值传递给apex类

时间:2013-12-19 15:47:05

标签: salesforce visualforce apex

我有以下Visualforce页面,apex类作为控制器。 我想在输入文本框中传递valus包含thids inputText1和InputText2到以下apex类中的同一个变量。

每次,apex类中的inputText1和inputText2都为null,我不知道为什么! Iv'e bin整天都坐在上面,我无法想象它为什么会发生!

请帮助我,因为我对此感到绝望。

<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;

    }
}

1 个答案:

答案 0 :(得分:3)

删除immediate="true"。 “立即”导致没有数据从表单传递到服务器。

另外 - 您可以更简单地编写变量,然后您将不需要显式的getXYZ / setXYZ方法:

public String inputText1 {get;set;}