首先感谢您的阅读!所以我本周刚刚学习了JSP和Servlets,今天早上我开始处理一个接受表单注释的程序,然后将它们全部显示在同一页面上!到目前为止它工作得很好,但我很难将这个程序带到下一个阶段。评论删除。
因此,我得到注释的方式是将每个注释对象放在一个数组中,然后将每个注释String连接在一起。将每个注释放入一个静态变量。
AllComments.addComment(comments[count].toString());
然后在我的JSP页面中我有类似的东西
<%=AllComments.getAllComments() %>
所以效果很好。一个新的评论出现了,它被连接起来,然后所有的评论都打印成一个格式化的字符串。
这个问题甚至被认为是有效的,通过将评论全部放在一起,我再也不能对它们做任何事了。因此,这使我无法完成下一步,即在每条评论旁边都有一个链接,并附带删除选项。
所以为了做到这一点,我认为我需要在JSP页面上将注释显示为循环,并将每个注释显示为单独的String。然后,如果有人点击删除,我可以从数组中删除该注释!
到目前为止,这是我在JSP页面中尝试的内容
<%
for (int i = 0; i < UserBean.getCommentCount(); i++)
{
%>
<%=comments[i].toString() %>
<%
}
%>
然而,这不起作用b / c注释引用变量的范围仅在受保护的doPut方法及其包中。那么我该怎么做才能让我的评论一次在循环中输出一条评论!您可以在下面查看我的整个servlet类。感谢您抽出宝贵时间阅读本文。
if (!request.getParameter("fullName").equals("") && !request.getParameter("comment").equals(""))
{
UserBean[] comments = new UserBean[10];
int count = UserBean.getCommentCount();
comments[count] = new UserBean();
comments[count].setFullName(request.getParameter("fullName"));
comments[count].setDate(String.valueOf(new Date()));
comments[count].setComment(request.getParameter("comment"));
AllComments.addComment(comments[count].toString());
UserBean.incrementCommentCount();
}
答案 0 :(得分:0)
您可以为请求或会话属性设置注释,具体取决于您是否重定向到JSP。 (如果重定向然后会话,原因请求属性将为空)。然后从会话或请求中获取对JSP页面的评论。
填写评论后的内部doPut方法
request.setAttribute("comments",comments);
request.getSession().setAttribute("comments",comments);
在JSP页面上,您需要添加到顶部
<% UserBean[] comments = (UserBean[]) request.getAttribute("comments"); %>
<% UserBean[] comments = (UserBean[]) session.getAttribute("comments"); %>
希望它有所帮助。