我正在使用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;
但是当我使用上面的类时;它变得如此令人困惑。这是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似乎很复杂。我该怎么办而不是像这样使用它?
答案 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>