gpt4 book ai didi

java - 操作从 servlet 传递的 jsp 页面上的列表

转载 作者:太空宇宙 更新时间:2023-11-04 11:53:37 25 4
gpt4 key购买 nike

我正在从链接读取 rssfeeds 并通过 rome api 将其填充到 servlet 中的列表中

List<freshbean> allrss = new ArrayList<freshbean>();
RssDao rd = new RssDao();
allrss = rd.getAllRssFromUrl("http://feeds.feedburner.com/GeoBulletins");
request.setAttribute("allrss", allrss);
RequestDispatcher reqdisp = request.getRequestDispatcher("WEB-INF/admin/getfeed.jsp");
reqdisp.forward(request, response);

在jsp页面上

<c:forEach items="${allrss}" var="post" varStatus="loop">
<div id=<c:out value="${loop.index}" /> class="container" >

<div class="row">
<h1><c:out value="${post.title}" escapeXml="false" /> </h1>
<div class="well well-sm"><c:out value="${post.date}" escapeXml="false" /> </div>
<div class="well well-sm"><c:out value="${post.link}" escapeXml="false" /> </div>
<c:out value="${post.description}" escapeXml="false" />
</div>
<input type="button" id='<c:out value="${loop.index}" />' value='Delete' class="btn btn-danger btn-block"/>
</div>
</c:forEach>

现在我想为用户提供一个选项来删除任何想要在数据库中存储剩余对象的某些提要。我已经尝试通过 ajax 进行删除,但是当 ajax 调用转到 servlet 列表时 allrss 为空

<script type="text/javascript">
$(document).ready(function() {
$(".btn").click(function() {
var postid = $(this).attr("id");
//$(this).val();
$.ajax({
url : 'RssServlet',
data : {
postid : postid
},
success : function() {
$('#' + postid).hide();
//alert('in success');
},
error : function() {
alert('in error');
}
})
});
});

我应该采用什么方法才能仅使用用户想要保存的对象将过滤后的数组返回到 servlet 上

最佳答案

我通过循环创建一个表单并通过 ajax 提交表单数据解决了这个问题,这样用户就可以只提交选定的数据并将其余数据保留在页面上。

在jsp页面上

    <c:forEach items="${allrss}" var="post" varStatus="loop">
<form method="post" action="RssServlet" class="form"
id='<c:out value="${loop.index}" />'>

<div class="form-group">
<label for="title">Title:</label> <input type="text"
class="form-control" id="title" name="title"
value='<c:out value="${post.title}"/>'>
</div>
<div class="form-group">
<label for="date">Date:</label> <input type="text"
class="form-control" id="date" name="date"
value='<c:out value="${post.date}"/>'>
</div>
<div class="form-group">
<label for="url">URL:</label> <input type="text"
class="form-control" id="url" name="url"
value='<c:out value="${post.link}"/>'>
</div>

<input type='submit' value='Add to database'
class="btn btn-primary btn-block"
id='<c:out value="${loop.index}" />'>

</form>
</c:forEach>

jsp 上的 Ajax

$(document).ready(function() {
$(".form").on('submit', (function(e) {
e.preventDefault();
var form = $(this);
$.ajax({
url : 'RssServlet',
type : "POST",
data : form.serialize(),
success : function(data) {
alert('in success');
},
error : function(e) {
console.log('Error: ' + e.message);
}
})
}));

在servlet中处理post请求

 String title = request.getParameter("title");
String date= request.getParameter("date");
String link= request.getParameter("link");

Add to database logic

关于java - 操作从 servlet 传递的 jsp 页面上的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41567959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com