当前位置: 首页 > 知识库问答 >
问题:

post到Servlet后重新显示JSP

孟均
2023-03-14

我有一个名为campaignMaint.java的Servlet,其中有一个doGet和一个doPost,还有一个名为jcampaignMaint.JSP的JSP。在输入URL/campaignMaint?campaign=Treasury时,doGet将数据构建为数组并执行:

Request.setAttribute("OrgContacts", contacts);
RequestDispatcher rd = request.getRequestDispatcher("JCampaignMaint.jsp");
rd.forward(request,response);  

jcampaignMaint.jsp然后构建一个包含一些可修改字段的表,如下所示:

<form action="CampaignMaint" method="post">
<c:forEach var="OrgContact" items="${OrgContacts}">
<tr>
<td>${OrgContact.orgName}</td>
<td>${OrgContact.orgTitle}</td>
<td><input type="number" name=${OrgContact.orgJoinName} value=${OrgContact.orgInfluence} min="1" max="5"</td>
<td><input type="number" name=${OrgContact.orgJoinName}  value=${OrgContact.orgSupport} min="1" max="5"</td>
<td><input type="number" name=${OrgContact.orgJoinName}  value=${OrgContact.orgEngagement} min="1" max="5"</td>
</tr>
</c:forEach>

<input type="submit" value="Submit">
</form>

单击Submit按钮时,HTTP Post将发送到服务器,并由CampaignMaints goPost方法处理,在该方法中读取表单,更新数据库。屏幕现在为空白,显示URL/SalesPoliticalMapping/CampaignMaint。

我想要的是,在提交时,doPost更新数据库,但我的屏幕保持不变,显示的表(或重建/重新显示)和原始URL为/campaignMaint?campaign=Treasury。然后我希望能够做进一步的更新和提交。

添加时的GlassFish堆栈跟踪

response.sendRedirect("/CampaignMaint?campaign=Treasury"); 

共有1个答案

江奕
2023-03-14

您的doPost方法可以重定向到生成视图的方法,而不是转发到jsp:

response.sendRedirect("/yourwebappname/CampaignMaint?campaign=Treasury");

这样,您就不必在post方法中重复显示逻辑,并且您将看到使用提交结果更新的视图。(您将看到屏幕刷新,因为这是一个新的GET请求。)

这种技术还避免了重复的表单提交,称为post/redirect/get模式。

 类似资料:
  • 我有一个索引。带有“刷新”、“转发”和“编辑”按钮的jsp页面。如果我单击刷新按钮,它将调用一个Servlet,并在索引上显示值。jsp页面。 当我点击“forward”按钮时,它调用另一个servlet并转到另一个页面forward\u call\u log。jsp。在这个页面中,当我点击“转发”按钮时,它调用另一个servlet,该servlet显示索引。jsp页面。索引。显示jsp页面,但数

  • 问题内容: 我经历了很多答案,并且在Google上搜索了很多,但仍然找不到为什么我的帖子请求不起作用的原因。 这是我的jsp: 这是我的控制器: 而我的servlet: 我不断收到此Null指针异常 请告诉我我这里做错了什么。 问题答案: 您的请求不包含名为“ data”的URL参数,因此request.getParameter(“data”)返回null,并且您获得NullPointerExce

  • 问题内容: 我尝试了这个,但不显示消息仅重定向 login.jsp Login_Servlet 是否可以显示这样的消息? 如果是这样,我做错了吗? 问题答案: 您可能会这样做: 编辑: 2018年3月20 日,美国东部时间08:19 或 不使用js

  • 我需要帮助将结果集值从servlet转发到jsp,而不使用JSTL实现 工作流程: 用户在输入框中输入值并单击搜索按钮 单击搜索时会调用servlet。servlet专注于数据库实现并将结果集值转发到请求所在的同一jsp页面。 问题:我的结果集大小是3,但仅表顶部的值就打印在我的jsp页面中。其余2个值缺失。我希望所有的值都打印在我的jsp页面中。 这是我的代码: Productlist.jsp

  • 我是jQuery新手,在jsp中将数据从servlet显示到jqGrid时遇到了困难。我使用google gson将数据从ArrayList转换为字符串变量json。当我运行项目时,它在控制台中显示json数据,并显示一个空网格。 Student.java 学生数据服务。JAVA 我的servlet代码: ervlet.java 我的JSP页面: 滑溜的网格演示。jsp

  • 问题内容: 我做了一些Angular路线,如下面的代码所示。 在我将基本href设置为“ /”后,它可以正常工作,但它接受了带有“ / portfolio”的href的锚点,但是当我转到“ http://url.com/portfiolo ”或尝试重新加载页面时当我在投资组合路线上时,它将给我服务器错误。我可以为此做些什么吗? 提前致谢。 问题答案: 我自己解决了..您始终需要在项目的根目录中创建