简体   繁体   中英

javax.el.PropertyNotWritableException: Illegal Syntax for Set Operation

I gotten this error "javax.el.PropertyNotWritableException: /staffComposeMail.xhtml @55,218 value="#{emailBean.staffToEmail.firstName} #{emailBean.staffToEmail.lastName} (#{emailBean.staffToEmail.email})": Illegal Syntax for Set Operation" when I try to submit my form.

This is how my page looks like. The red underlined text represents the emailBean.staffToEmail.firstName, emailBean.staffToEmail.lastName and emailBean.staffToEmail.email respectively.

在此处输入图片说明

The input box inside one of my page

<input type="text" class="form-control" jsf:value="#{emailBean.staffToEmail.firstName} #{emailBean.staffToEmail.lastName} (#{emailBean.staffToEmail.email})"/>

Any idea on how to resolve this problem?

Edit : Added in emailBean

package managedbean;

import entities.Staff;
import entities.StaffEmail;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import sessionBeanInterface.emailSessionBeanLocal;
import sessionBeanInterface.staffSessionBeanLocal;

/**
 *
 * @author 
 */
@ManagedBean(name = "emailBean")
@SessionScoped
public class EmailBean implements Serializable {

    @PostConstruct
    public void init() {
        setStaffToEmail(new Staff());
        email = new StaffEmail();

    }

    @EJB
    private emailSessionBeanLocal emailSession;
    @EJB
    private staffSessionBeanLocal staffSession;
    private StaffEmail email;
    private String emailWithFirstName;
    private String personTo;
    private Staff staffToEmail;

    /**
     * @return the emailSession
     */
    public emailSessionBeanLocal getEmailSession() {
        return emailSession;
    }

    /**
     * @param emailSession the emailSession to set
     */
    public void setEmailSession(emailSessionBeanLocal emailSession) {
        this.emailSession = emailSession;
    }

    /**
     * @return the email
     */
    public StaffEmail getEmail() {
        return email;
    }

    /**
     * @param email the email to set
     */
    public void setEmail(StaffEmail email) {
        this.email = email;
    }

    /**
     * @return the emailWithFirstName
     */
    public String getEmailWithFirstName() {
        return emailWithFirstName;
    }

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

    /**
     * @return the personTo
     */
    public String getPersonTo() {
        return personTo;
    }

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

    /**
     * @return the staffToEmail
     */
    public Staff getStaffToEmail() {
        return staffToEmail;
    }

    /**
     * @param staffToEmail the staffToEmail to set
     */
    public void setStaffToEmail(Staff staffToEmail) {
        this.staffToEmail = staffToEmail;
    }

    /**
     * @return the staffSession
     */
    public staffSessionBeanLocal getStaffSession() {
        return staffSession;
    }

    /**
     * @param staffSession the staffSession to set
     */
    public void setStaffSession(staffSessionBeanLocal staffSession) {
        this.staffSession = staffSession;
    }
}

You can only assign a single value to the jsf:value attribute, like this:

jsf:value="#{emailBean.someString}"

Then, on your EmailBean, you could split this "someString" into the "firstName", "lastName" and "staffToEmail" attributes.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM