我正在从链接读取 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
我是一名优秀的程序员,十分优秀!