Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
lipse luna、tomcat 8和mojarra 2.2.7; 从javax.faces.bean.ManagedBean而不是javax.annotations.ManagedBean导入@ManagedBean后,它工作正常。我在jsf页面上看不_Jsf_Jpa - Fatal编程技术网

lipse luna、tomcat 8和mojarra 2.2.7; 从javax.faces.bean.ManagedBean而不是javax.annotations.ManagedBean导入@ManagedBean后,它工作正常。我在jsf页面上看不

lipse luna、tomcat 8和mojarra 2.2.7; 从javax.faces.bean.ManagedBean而不是javax.annotations.ManagedBean导入@ManagedBean后,它工作正常。我在jsf页面上看不,jsf,jpa,Jsf,Jpa,lipse luna、tomcat 8和mojarra 2.2.7; 从javax.faces.bean.ManagedBean而不是javax.annotations.ManagedBean导入@ManagedBean后,它工作正常。我在jsf页面上看不到任何f:view标记。你能调试OrderBean.java吗,应用程序会命中构造函数吗?不会,它不会命中构造函数。为什么我需要一个f:view标签?根据post的说法,它是JSP页面所必需的,而不是JSF。好吧,它确实是可选的,很抱歉,现在就

lipse luna、tomcat 8和mojarra 2.2.7;
javax.faces.bean.ManagedBean
而不是
javax.annotations.ManagedBean
导入
@ManagedBean
后,它工作正常。

我在jsf页面上看不到任何
f:view
标记。你能调试OrderBean.java吗,应用程序会命中构造函数吗?不会,它不会命中构造函数。为什么我需要一个f:view标签?根据post的说法,它是JSP页面所必需的,而不是JSF。好吧,它确实是可选的,很抱歉,现在就跳到这个结论上来。无论如何,由于它甚至没有命中托管bean构造函数,我会检查web.xml中的FacesServlet url模式是否与您的页面url匹配。对不起,不是这样。我的URL模式是*.jsf。当我请求test.jsf(pagename是test.xhtml)时,我会得到有效的html代码作为回报。您使用的是哪个jsf实现?当我将
@ManagedBean
添加到OrderBean并更改
xmlns:h=”时,它对我很有效http://xmlns.jcp.org/jsf/html“
to
xmlns:h=”http://java.sun.com/jsf/html“
(我正在使用mojarra 2.1.7)。
import java.util.List;
import javax.faces.bean.RequestScoped;
import javax.annotations.ManagedBean;
import javax.persistence.EntityManager;
import listener.EMF;
import model.CustomerOrder;

@MangedBean
@RequestScoped
public class OrderBean {

    private List<CustomerOrder> orderList;

    /**
     * Creates a new instance of OrderBean
     */
    public OrderBean() {
        EntityManager em = EMF.createEntityManager();
        this.orderList = em.createNamedQuery("CustomerOrder.findAll").getResultList();
        System.out.println("=== Orderlist ===");
        for (CustomerOrder order : orderList) {
            System.out.println(order.getNumber());
        }
        em.close();
    }

    public List<CustomerOrder> getOrderList() {
        System.out.println("=== In getOrderList ===");
        return orderList;
    }

    public void setOrderList(List<CustomerOrder> orderList) {
        this.orderList = orderList;
    }

}
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.*;
import java.util.regex.*;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import listener.EMF;
import regex.AttachmentAnalyzer;

@Entity
@Table(name = "customerorder")
@NamedQueries({
    @NamedQuery(name = "CustomerOrder.findAll", query = "SELECT c FROM CustomerOrder c"),
    @NamedQuery(name = "CustomerOrder.findById", query = "SELECT c FROM CustomerOrder c WHERE c.id = :id"),
    @NamedQuery(name = "CustomerOrder.findByNumber", query = "SELECT c FROM CustomerOrder c WHERE c.number = :number"),
    @NamedQuery(name = "CustomerOrder.findByCalculationparameter", query = "SELECT c FROM CustomerOrder c WHERE c.calculationparameter = :calculationparameter"),
    @NamedQuery(name = "CustomerOrder.findByActive", query = "SELECT c FROM CustomerOrder c WHERE c.active = :active"),
    @NamedQuery(name = "CustomerOrder.findByLastupdate", query = "SELECT c FROM CustomerOrder c WHERE c.lastupdate = :lastupdate")})
public class CustomerOrder implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id")
    private Integer id;
    @Size(max = 255)
    @Column(name = "number")
    private String number;
    @Column(name = "calculationparameter")
    private BigDecimal calculationparameter;
    @Column(name = "active")
    private Short active;
    @Basic(optional = false)
    @NotNull
    @Column(name = "lastupdate")
    @Temporal(TemporalType.TIMESTAMP)
    private Date lastupdate;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "customerorderId")
    private List<Orderline> orderlineList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "customerorderId")
    private List<Attachment> attachmentList;
    @JoinColumn(name = "lastupdateby", referencedColumnName = "id")
    @ManyToOne(optional = false)
    private User lastupdateby;
    @JoinColumn(name = "customer_id", referencedColumnName = "id")
    @ManyToOne
    private Customer customerId;
    @Transient
    private boolean validOrder;

    public CustomerOrder() {
    }

    public CustomerOrder(Email email) {
        this.attachmentList = email.getAttachments();
        EntityManager em = EMF.createEntityManager();
        List<Customer> customers = em.createNamedQuery("Customer.findAll").getResultList();
        User systemUser = (User) em.createNamedQuery("User.findByName").setParameter("name", "system").getSingleResult();
        em.close();
        for (Customer customer : customers) {
            String fromAddressFilter = customer.getEmailaddressfilter();
            String subjectFilter = customer.getEmailsubjectfilter();
            String subject = email.getSubject();
            String content = email.getContent();
            if (isMatch(email.getSubject(), subjectFilter)
                    && isMatch(email.getFromAddress(), fromAddressFilter)) {
                this.validOrder = true;
                this.active = 1;
                AttachmentAnalyzer analyzer = new AttachmentAnalyzer(customer, subject, content, attachmentList);
                this.number = analyzer.getNumber();
                this.calculationparameter = analyzer.getCalculationParameter();
                this.orderlineList = analyzer.getOrderlineList();
                this.customerId = customer;
                this.lastupdateby = systemUser;
                for (Attachment a : attachmentList) {
                    a.setCustomerorderId(this);
                }
                for (Orderline o : orderlineList) {
                    o.setCustomerorderId(this);
                    o.setLastupdateby(systemUser);
                }
            } else {
                this.validOrder = false;
            }
        }
    }

    private boolean isMatch(String string, String filter) {
        Pattern pattern;
        pattern = Pattern.compile(filter);
        Matcher matcher = pattern.matcher(string);
        boolean isMatch = matcher.find();
        return isMatch;
    }


// getters, setters and overrided hashCode, equal and toString methods omitted 

}
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html">
    <h:head>
        <title>Test page</title>
    </h:head>
    <h:body>
        <h:dataTable var="order" value="#{orderBean.orderList}" >
            <h:column>
                #{order.customerId}
            </h:column>
        </h:dataTable>
    </h:body>
</html>