2

我有以下 Visualforce 页面,以及作为控制器的顶点类。我想将包含 th ids inputText1 和 InputText2 的输入文本框中的值传递给以下顶点类中的同一变量。

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

    }
}
4

1 回答 1

4

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

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

public String inputText1 {get;set;}

于 2013-12-19T16:21:58.183 回答