分离java和html

时间:2017-05-01 10:47:38

标签: java html jsp

我正在使用jsp开发一个网站。 就像在php中一样,我试图将html和java代码分开来检查用户并通过java类调用html内容。

这是我的index.jsp页面:



<!DOCTYPE html>
<html>
  <head>
    <%=DefaultTagContents.putHeader()%>
  </head>
  <body>
      <%
          if(request.getSession().getAttribute("username") == null){
              out.print(DefaultTagContents.putUnRegisteredNavbar());
              out.print(DefaultTagContents.putUnregisteredIndexContent());
          }else{
              out.print(DefaultTagContents.putRegisteredNavbar());
              out.print(DefaultTagContents.putRegisteredIndexContent());
          }
      %>
  </body>
</html>
&#13;
&#13;
&#13;

但是当我使用上面的类时;它变得如此令人困惑。这是java类&#34; DefaultTagContents&#34; :

public static String putRegisteredNavbar(){
    return "<nav class=\"navbar navbar-default\">\n" +
            "    <div id=\"content-container\" class=\"container-fluid\">\n" +
            "\n" +
            "        <ul class=\"nav navbar-nav\">\n" +
            "            <li><a href=\"index.jsp\">Ana Sayfa</a></li>\n" +
            "            <li><a href=\"profile.jsp\">Profilim Ne Halde?</a></li>\n" +
            "            <li><a href=\"about.jsp\">Siz Kimsiniz?</a></li>\n" +
            "        </ul>\n" +
            "\n" +
            "        <form class=\"navbar-form navbar-right\">\n" +
            "            <div class=\"input-group\">\n" +
            "                <input type=\"text\" class=\"form-control\" placeholder=\"Ne istedin?\">\n" +
            "                <div class=\"input-group-btn\">\n" +
            "                    <div class=\"input-group-btn\">\n" +
            "                        <button class=\"btn btn-default\" type=\"submit\">\n" +
            "                            <i class=\"glyphicon glyphicon-search\"></i>\n" +
            "                        </button>\n" +
            "                    </div>\n" +
            "                </div>\n" +
            "            </div>\n" +
            "        </form>\n" +
            "    </div>\n" +
            "</nav>";
}

开发索引页面html似乎很复杂。我该怎么办而不是像这样使用它?

1 个答案:

答案 0 :(得分:0)

你做的方式(一般使用java scriptlets)绝对不推荐,应该避免。

JSP个网页用作MVC模式中的视图。它们旨在将业务逻辑的关注与表示的关注分开。

在这种情况下,您可以将html代码放在单独的文件中,并根据条件包含(无论是否设置了用户名)。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>

<head>
    <%=DefaultTagContents.putHeader()%>
</head>

<body>
    <c:choose>
        <c:when test="${sessionScope.username != null}">
            <jsp:include page="RegisteredNavbar.html" />
            <jsp:include page="RegisteredIndexContent.html" />
        </c:when>
        <c:otherwise>
            <jsp:include page="UnRegisteredNavbar.html" />
            <jsp:include page="UnRegisteredIndexContent.html" />
        </c:otherwise>
    </c:choose>
</body>

</html>