首页 > 解决方案 > 在Netbeans中使用JSF,项目运行时不会加载css

问题描述

我在 Netbeans 8.2 中使用 jsf 版本 2.2.12。该项目是从数据库中获取信息: 数据库设置以供参考。在带有 WAMP 的 phpmyadmin 中使用 MySQL 目前,如果我右键单击索引并运行它,一切都运行良好。正常工作的网页图像 但是,如果我运行整个项目,页面以基本 html 加载,没有 bean 功能等。问题图片

我们正在学习使用数据库中的信息来填充模板片段,这样就不需要每个项目都有一个页面。

这是我的 bean,它几乎可以运行所有东西:

    String curProduct;
    String curDesc;
    String curImage;
    double curPrice;
    int curQty;

    public String getCurProduct() {
        return curProduct;
    }

    public void setCurProduct(String curProduct) {
        this.curProduct = curProduct;
    }

    public String getCurDesc() {
        return curDesc;
    }

    public void setCurDesc(String curDesc) {
        this.curDesc = curDesc;
    }

    public String getCurImage() {
        return curImage;
    }

    public void setCurImage(String curImage) {
        this.curImage = curImage;
    }

    public double getCurPrice() {
        return curPrice;
    }

    public void setCurPrice(double curPrice) {
        this.curPrice = curPrice;
    }

    public int getCurQty() {
        return curQty;
    }

    public void setCurQty(int curQty) {
        this.curQty = curQty;
    }


    public void changeProduct(String click) throws SQLException, IOException {
        Connection con = connection();
        if (con == null) {
            System.out.println("Cannot connect to database");
            return;
        } else {
            try {
                Statement stmt = con.createStatement();
                ResultSet result = stmt.executeQuery("Select itemName, itemDesc, qty, price, image FROM inventory WHERE itemId = '" + click +"'");
                ResultSetMetaData rsmd = result.getMetaData();
                int columnsNumber = rsmd.getColumnCount();
                while (result.next()) {
                    for (int i = 1; i <= columnsNumber;) {
                        curProduct = result.getString(i);
                        curDesc = result.getString(i + 1);
                        curQty = result.getInt(i + 2);
                        curPrice = result.getDouble(i + 3);
                        curImage = result.getString(i + 4);
                        i += 5;
                    }
                }
                FacesContext.getCurrentInstance().getExternalContext().redirect("product.xhtml");
            } finally {
                con.close();
            }
        }
    }

这是 product.xhtml 页面:

<?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"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
      xmlns:f5="http://xmlns.jcp.org/jsf/passthrough"
      xmlns:p="http://primefaces.org/ui">

    <h:head>
        <title></title>
    </h:head>
    <h:body>
        <ui:composition template="template/layout.xhtml">     

            <ui:param name="wrapperWidth" value="1055px"/>

            <ui:define name="title">
                Electronics Emporium Store Page
            </ui:define>

            <ui:define name="login">
                <h:form style="#{loginBean.loginBarStyles}">
                    <h:inputText styleClass="inputs" value="#{loginBean.userName1}" f5:type="email" f5:placeholder="E-mail"/>            
                    <h:inputSecret  styleClass="inputs" value="#{loginBean.password1}" f5:placeholder="Password"/>            
                    <h:commandButton styleClass="lbutton" value="Login" action="#{loginBean.login()}"/>
                </h:form>
                <p id="login_bar" style="#{loginBean.loginInfoStyles}">Welcome #{loginBean.userName1}!</p>
            </ui:define>

            <ui:param name="search" value="true"/>
            <ui:define name="search">
                <h:form>
                    <h:inputText styleClass="inputs" value="#{itemsBean.searchTerm}" f5:type="search" f5:placeholder="Search"/>
                    <h:commandButton styleClass="lbutton" value="Search" action="#{itemsBean.search()}"/>
                </h:form>
            </ui:define>

            <ui:define name="logo"/>

            <ui:define name="top">     
                .:Best Supplier of Phones and Computers!:.
            </ui:define>

            <ui:define name="menu">
                <ui:include src="rafaMenu.xhtml" />
            </ui:define>

            <ui:param name="leftWidth" value="200px"/>
            <ui:define name="left">
                <ui:include src="tieredMenu.xhtml"/>
            </ui:define>

            <ui:param name="right" value="false"/>
            
            <ui:define name="content">               
                <hr/>
                <h:outputText value="#{itemsBean.curProduct}"/>
                <h:panelGrid columns="2">
                    <p:panel>
                        <h:graphicImage value="#{itemsBean.curImage}"/>
                    </p:panel>
                    <p:panel>
                        <h:outputText value="#{itemsBean.curDesc}"/>
                    </p:panel>
                </h:panelGrid>
                <h:outputText value="#{itemsBean.curPrice}"/>
                <h:outputText value="'Stock Left: ' + #{itemsBean.curQty}"/>
                <hr/>
            </ui:define>
            
            <ui:define name="bottom">
                SLCC ASDV © 2018. All Rights Reserved.
            </ui:define>

        </ui:composition>
    </h:body>
</html>

我所有的其他页面都运行正常。我只能通过运行索引文件而受苦,但我的老师不会。也没有错误,只是没有格式化 bean 函数。

标签: mysqltemplatesjsfnetbeanswamp

解决方案


推荐阅读