我正在尝试在jsp页面上的for循环内创建多个div。我正在从数据库中加载论坛中的所有帖子,每个帖子都是一个新的div。我正在尝试使ID为id= "post-" + title
的div,其中title
是一个变量。
我尝试过用这种方式放置out.printlnt(title)
并没有工作,我还找到了一个解决方案,说像div id = {{title}}
这样的东西仍然无法使用。您知道不使用JavaScript就能做到吗?我只想从for循环中分配ID。
for (ForumPost fp : allForumPosts) {
//get title and likes variables
<div id = "<%out.println(title);%>" >
<%out.println(title); out.println(likes);%>
<a>LIKE</a>
</div>
}
答案 0 :(得分:1)
Java Server Pages (JSP)是用于前端的服务器端编程技术。
假设您已将对象从控制器传递到JSP,则可以使用JSTL
实现所需的for循环。<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach items="${allForumPosts}" var="post">
<div id="post-${post.title}"></div>
</c:forEach>
如果您更喜欢 scriptlet (不推荐),请按照以下步骤操作
<% for (ForumPost post : allForumPosts) { %>
<div id="post-<%=post.title%>"></div>
<% } %>
答案 1 :(得分:1)
如果您不介意使用jstl(脚本编写的首选方法),则可以通过以下方式进行操作:
def save(self, commit=True):
if self.is_valid():
# Get instance with self.instance & only update if a value's changed:
for field_name in self.fields:
if getattr(self.instance, field_name) != self.cleaned_data[field_name]:
setattr(self.instance, field_name, self.cleaned_data[field_name])
self.instance.save()
return self.instance
只需确保将此标记包含在jsp的顶部:
<c:forEach var="post" items="${allForumPosts}">
<div id="post-${post.title}">
${post.title}; ${post.likes} <a>LIKE</a>
</div>
</c:forEach>
如果您想像现在一样使用scriptlet,我认为您应该执行以下操作:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
但是您真的应该考虑使用jstl而不是scriptlet