c:如果来自模型的变量

时间:2019-06-17 20:37:16

标签: java jsp jersey

我们有一个Web应用程序,如果我们已经登录,则需要显示一个标头,如果我们没有登录,则需要显示另一个标头。我想在JSP文件中呈现这些服务器端。

这是我的第一次尝试:

WebDelivery.java

package xyz.toold.cuebox.web;

import java.util.HashMap;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import org.glassfish.jersey.server.mvc.Viewable;

@Path("/")
public class WebDelivery {

    @Path("/")
    @GET
    public Viewable index() {
        HashMap<String, Object> model = new HashMap<>();
        model.put("LoggedIn", true);
        return new Viewable("/index", model);
    }

    @Path("/search/")
    @GET
    public Viewable search() {
        return new Viewable("/search/index", true);
    }

    @Path("/user/")
    @GET
    public Viewable user() {
        return new Viewable("/user/index");
    }

    @Path("/board/details/")
    @GET
    public Viewable boardDetails() {
        return new Viewable("/board/details/index");
    }

    @Path("/board/")
    @GET
    public Viewable board() {
        return new Viewable("/board/index");
    }

    @Path("/admin/")
    @GET
    public Viewable admin() {
        return new Viewable("/admin/index");
    }
}

index.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML>
<html lang="en">
    <head>
        <meta http-equiv="Content-Security-Policy" content="default-src: https: 'unsafe-inline'" />
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="robots" content="index,follow" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />

        <link rel="stylesheet" href="css/bulma.min.css">
        <link rel="stylesheet" href="css/style.css">

        <title>CueBox</title>

    </head>

    <body>
    <%--TODO: Add logic to decide which header to set--%>
    <c:if test="${model.LoggedIn}">
        <jsp:include page="assets/partials/header-nologin-popups.jsp"/>
    </c:if>
    <section class="hero has-plant-image-background is-fullheight">
            <div class="title-position">
                <div class="hero-body">
                    <div class="container">
                        <h1 class="title-size has-text-white">NEW ERA OF<br/>FEEDBACK</h1>
                        <h2 class="hr subtitle-size has-text-white">GET YOUR FEEDBACK WITH EASE</h2>
                    </div>
                </div>
            </div>
        </section>

        <section class="section is-fullheight has-text-black has-background-grey-light has-text-centered">
            <div class="column is-half is-offset-one-quarter">
                <div class="hero-body">
                    <h1 class="title is-1">WHAT TO EXPECT</h1>
                    <hr class="line has-background-white">
                </div>
            </div>

            <div class="hero-body">
                <div class="container">
                    <div class="columns">
                        <div class="column">
                            <div class="content">
                                <i class="icon is-large fas fa-2x fa-comments"></i>
                                <h1 class="title is-size-4">Honest Feedback</h1>
                                <p class="is-size-5">The users can write anonymous posts, so it will be more honest.</p>
                            </div>
                        </div>
                        <div class="column">
                            <div class="content">
                                <i class="icon is-large fas fa-2x fa-cogs"></i>
                                <h1 class="title is-size-4">Easy administration</h1>
                                <p class="is-size-5">Don't waste time be configuring stupid settings.</p>
                            </div>
                        </div>
                        <div class="column">
                            <div class="content">
                                <i class="icon is-large fas fa-2x fa-users"></i>
                                <h1 class="title is-size-4">Scalable</h1>
                                <p class="is-size-5">CueBox works for living communities, small companies and lare groups.</p>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </section>
    <jsp:include page="assets/partials/footer.html"/>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" integrity="sha384-tsQFqpEReu7ZLhBV2VZlAu7zcOV+rXbYlF2cqB8txI/8aZajjp4Bqd+V6D5IgvKT" crossorigin="anonymous"></script>
    <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js" integrity="sha384-kW+oWsYx3YpxvjtZjFXqazFpA7UP/MbiY4jvs+RWZo2+N94PFZ36T6TFkc9O3qoB" crossorigin="anonymous"></script>
    <script src="js/main.js"></script>
    <script src="js/validation.js"></script>
    <script src="js/helper.js"></script>
    </body>
</html>

问题是我的if从未触发,因此标题从未显示。我知道else丢失了。我本来可以通过另一个if来实现它的,它被倒置了。

我还尝试过不传递HashMap而是传递普通的boolean,但是它也不起作用。

这是link to my GitLab project

我在做错什么,还是这完全是错误的方式?

0 个答案:

没有答案