No there's definitely a lot more to it. I was just cutting it down to the
interesting parts that appeared to be the problem. In reality it looks more
like:

public class Create extends BasePage
{
        @ApplicationState
        private User user;
        private boolean userExists;
        
        @ApplicationState
        private DBConnection dbconn;
        
        @ApplicationState
        private Object lastPage;
        private boolean lastPageExists;
        
        @InjectPage
        private Redirect redirectPage;
        
        // The following are used for form parameters
        @Persist
        private int numAccounts;
        @Persist        
        private String userName;
        @Persist
        private String password;
        @Persist
        private String firstName;
        @Persist
        private String lastName;
        @Persist
        private String motd;
        @Persist
        private String disabledMods;
        @Persist
        private int difficulty;
        @Persist
        private boolean isActive;
        @Persist
        private int acctType;
        @Persist
        private java.util.List<Classroom> classes;
        @Component(id = "userForm")
    private Form form;
        
        private ClassroomVE classVE;
        private HashMap<Classroom,String> classModel;
        private HashMap<String,String> activeModel;
        private HashMap<String,String> acctTypeModel;
        
        Object onActivate()
        {
                // If user is not logged in, send them to login page
                if(!userExists)
                {
                        lastPage = "Users/Create";
                        return "Login";
                }
                
                // If user is not at least a teacher, send them to main menu
                if(user.getType() < UserType.TEACHER)
                {
                        redirectPage.setMessage("You do not have permission
to access this page");
                        redirectPage.setRedirect("MainMenu");
                        return redirectPage;
                }
                
                return null;
        }
        
        /**
         * This function is called before the page is rendered
         */
        @SetupRender
        void setupRender()
        {
                // Set defaults
                numAccounts = 1;
                userName = "TEst";
                password = "booo";
                firstName = "Boo";
                lastName = "Big";
                motd = "Hello";
                disabledMods = "piaget";
                difficulty = 1;
                isActive = true;
                acctType = 0;
                classVE = new ClassroomVE(dbconn);
                
                ClassroomFactory classFac = new ClassroomFactory(dbconn);
                classModel = new HashMap<Classroom,String>();
                
                try
                {
                        java.util.List<Classroom> classes;
                        if(user.getType() >= UserType.ADMIN) classes =
classFac.getAllClassrooms();
                        else classes = classFac.getUserClassrooms(user);
                        
                        for(Classroom tClass : classes)
                        {
                                String value = tClass.getName() + " - Per. "
+ tClass.getPeriod() + " - " + tClass.getDescription();
                                
                                //value = tClass.getName() + " - Per. " +
tClass.getPeriod() + " - " + tClass.getDescription();
                                classModel.put(tClass, value);
                        }
                }
                catch (Exception e)
                {
                        e.printStackTrace();
                }
                
                acctTypeModel = UserType.toMap();
                // If the current user is a lower level user, remove the
ability to create higher level users
                if(user.getType() < UserType.GOD)
acctTypeModel.remove(Integer.toString(UserType.GOD));
                if(user.getType() < UserType.ADMIN)
acctTypeModel.remove(Integer.toString(UserType.ADMIN));
                
                activeModel = new HashMap<String,String>();
                activeModel.put("1", "Enabled");
                activeModel.put("0", "Disabled");
        }
        
        /**
         * This function is called upon successful completion of the form.
         * The function attempts to add or modify an entry for the user
         * to the database. If it cannot do so, it returns with errors.
         * @return
         */
        Object onSuccess()
        {
                ...
        }

        /**
         * @return the numAccounts
         */
        public String getNumAccounts()
        {
                return Integer.toString(numAccounts);
        }

        /**
         * @param numAccounts the numAccounts to set
         */
        public void setNumAccounts(String numAccounts)
        {
                this.numAccounts = new Integer(numAccounts);
        }

        /**
         * @return the username
         */
        public String getUserName()
        {
                return userName;
        }

        /**
         * @param username the username to set
         */
        public void setUserName(String userName)
        {
                this.userName = userName;
        }

        /**
         * @return the password
         */
        public String getPassword()
        {
                return password;
        }

        /**
         * @param password the password to set
         */
        public void setPassword(String password)
        {
                this.password = password;
        }

        /**
         * @return the firstName
         */
        public String getFirstName()
        {
                return firstName;
        }

        /**
         * @param firstName the firstName to set
         */
        public void setFirstName(String firstName)
        {
                this.firstName = firstName;
        }

        /**
         * @return the lastName
         */
        public String getLastName()
        {
                return lastName;
        }

        /**
         * @param lastName the lastName to set
         */
        public void setLastName(String lastName)
        {
                this.lastName = lastName;
        }

        /**
         * @return the motd
         */
        public String getMotd()
        {
                return motd;
        }

        /**
         * @param motd the motd to set
         */
        public void setMotd(String motd)
        {
                this.motd = motd;
        }

        /**
         * @return the disabledMods
         */
        public String getDisabledMods()
        {
                return disabledMods;
        }

        /**
         * @param disabledMods the disabledMods to set
         */
        public void setDisabledMods(String disabledMods)
        {
                this.disabledMods = disabledMods;
        }

        /**
         * @return the difficulty
         */
        public String getDifficulty()
        {
                return Integer.toString(difficulty);
        }

        /**
         * @param difficulty the difficulty to set
         */
        public void setDifficulty(String difficulty)
        {
                this.difficulty = new Integer(difficulty);
        }

        /**
         * @return the isActive
         */
        public String getIsActive()
        {
                if(isActive) return "1";
                else return "0";
        }
        /**
         * @param isActive the isActive to set
         */
        public void setIsActive(String isActive)
        {
                if(isActive.compareTo("1") == 0) this.isActive = true;
                else this.isActive = false;
        }

        /**
         * @return the acctType
         */
        public String getAcctType()
        {
                return Integer.toString(acctType);
        }

        /**
         * @param acctType the acctType to set
         */
        public void setAcctType(String acctType)
        {
                
                this.acctType = new Integer(acctType);
        }

        /**
         * @return the classes
         */
        public java.util.List<Classroom> getClasses()
        {
                return classes;
        }

        /**
         * @param classes the classes to set
         */
        public void setClasses(java.util.List<Classroom> classes)
        {
                this.classes = classes;
        }

        /**
         * @return the classVE
         */
        public ClassroomVE getClassVE()
        {
                return classVE;
        }

        /**
         * @return the classModel
         */
        public HashMap<Classroom, String> getClassModel()
        {
                return classModel;
        }

        /**
         * @param classModel the classModel to set
         */
        public void setClassModel(HashMap<Classroom, String> classModel)
        {
                this.classModel = classModel;
        }

        /**
         * @return the activeModel
         */
        public HashMap<String, String> getActiveModel()
        {
                return activeModel;
        }

        /**
         * @param activeModel the activeModel to set
         */
        public void setActiveModel(HashMap<String, String> activeModel)
        {
                this.activeModel = activeModel;
        }

        /**
         * @return the acctTypeModel
         */
        public HashMap<String, String> getAcctTypeModel()
        {
                return acctTypeModel;
        }

        /**
         * @param acctTypeModel the acctTypeModel to set
         */
        public void setAcctTypeModel(HashMap<String, String> acctTypeModel)
        {
                this.acctTypeModel = acctTypeModel;
        }
}

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
> On Behalf Of Josh Canfield
> Sent: Wednesday, November 28, 2007 10:24 AM
> To: Tapestry users
> Subject: Re: [T5] Cannot persist field exception
> 
> Is that the entire page class?



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to