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

标签 java jquery ajax jsp servlets

我正在从链接读取 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/

相关文章:

javascript - 如何通过jQuery ajax发送Json数据和文本框数据

javascript - 如何预加载我知道将通过 XMLHttpRequest 请求的资源?

java - 将 OpenGL 与 LWJGL 结合使用不会生成图片

java.sql.SQLException : After end of result set error in mysql 异常

java - 如何使用java将doc、pdf、图片文件保存到mysql数据库?

javascript - jQuery:添加具有预定义函数的更改事件处理程序

jquery - 尝试本地化 jQuery 移动日期选择器输入

javascript - 如何将一行追加到 jquery 位于第二位置的表中?

javascript - 使用jquery从php文件到php文件的php变量

java - 如何使用 Android Studio 2.1.3 从 Android 中的文本文件中获取随机行?