Comment passer d'un objet à partir d'une JSP forme d'une classe d'Action dans Struts2, sans définir tous les champs du formulaire en tant que catégorie de la propriété?

De faire de la question claire, je fais un exemple:

  1. envisager theSubscriber forme définie ci-dessous dans first.jsp:
    <s:form id="theSubscriber" name="theSubscriber" method="post" action="next.action">
        <s:bean name="my.hibernate.actors.Subscriber" var="user">
            <s:hidden name="id" key="id" value="%{user.id}"  />
            <s:textfield id="subscriberForename" name="forename"
                        key="forename" value="%{user.forename}" label="Forename" />
            <s:textfield id="subscriberSurname" name="surname" 
                        key="surname" value="%{user.surname}" label="Surname" />
        </s:bean>
    </s:form>
  2. envisager les mesures suivantes de la classe pour la prochaine.action
    public class NextAction extends ActionSupport {
    
        private Subscriber user = new Subscriber();
    
        private String forename;
    
        public String getForename() {
            return forename;
        }        
        public void setForename(String forename) {
            this.forename = forename;
        }
    
        public ManageSubscriber() {
            //TODO Auto-generated constructor stub
        }
    
        public ManageSubscriber(Subscriber user) {
            this.user = user;
        }
    
        public Subscriber getUser() {
            return user;
        }                
        public void setUser(Subscriber user) {
            this.user = user;
        }
    
        public String execute() {
            System.out.println(getUser());//This prints out null
            System.out.println(getForename());//This prints out the posted forename
            return SUCCESS;
        }
    }
  3. La question est: je sais que la définition de tous les champs de formulaire que l'action des propriétés de la classe la classe les remplir correctement. Mais je veux le faire remplir les champs pertinents dans une autre classe qui contient toutes les propriétés nécessaires. L'utilisateur/abonné classe est comme ceci:
    public class User {
        private long id;
        private String username;
        private String password;
        private UserLevel userLevel;
        private String forename;
        private String surname;
        private String email;
        private String phoneNumber;
        private String address;
        private Date birthday;
        private Date registrationDate;
    }

J'ai défini toutes les méthodes d'accès.
En fait, le problème, c'est qu'il a l'air très ennuyeux et redondant de définir l'ensemble de ces champs pour l' nextAction de la classe et d'en évaluer l'instance de l'utilisateur de la classe.

Comment dois-je résoudre ce problème?

OriginalL'auteur Johnny | 2012-12-30