有没有办法自动更新 EL 标签值?

Is there a way to automatically update EL tag values?

我正在使用 EL(表达式语言)标签在我的 JSP 中显示来自我的 java 代码的值。不幸的是,更新这些值的唯一方法似乎是使用表单,它将 httpRequests 发送到 servlet。用户还需要单击一个按钮来发送此表单。几天来我一直在研究如何在不强迫用户做任何事情的情况下自动更新这些值。但我找不到解决方案,不涉及已弃用的 scriplet。

有没有办法做到这一点? 如果是的话,一个小例子会对我有很大帮助,因为我对网络世界还很陌生。

感谢 Alan Hay 的评论,我终于找到了解决方案。您需要下载这个名为 "ajax" 的神奇东西,然后 RC 您的项目 -> 属性 -> Java 构建路径 -> 库 -> 添加外部 Jar -> Select之前下载的 Ajax.zip.

之后我想出了下面的代码。代码每 3 秒更新我在输入字段中写入的任何内容。

JSP

<script>
src = "http://code.jquery.com/jquery-latest.js"

var ajax_call = function() {
  $(document).ready(function() {
    var username = $('#user').val();
    $.get('UpdateListsServlet', {
      user: username
    }, function(responseText) {
      $('#TEST').text(responseText);
    });
  });
};

var interval = 3000; //Update every 3s

setInterval(ajax_call, interval);
</script>
<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" type="text/css" href="style.cs" />
</head>

<body>

  <form>
    <input type="text" id="user" />
    <div id="TEST"></div>
  </form>

</body>

</html>

Servlet

 package ajax;

 import java.io.IOException;
 import javax.servlet.ServletException;
 import javax.servlet.annotation.WebServlet;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;

 public class UpdateListsServlet extends HttpServlet 
 {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse  response) throws ServletException, IOException 
    { 
       String name = null;
       name = request.getParameter("user");

       if(request.getParameter("user").toString().equals(""))
           name="Hello User";

           response.setContentType("text/plain");  
           response.setCharacterEncoding("UTF-8"); 
           response.getWriter().write(name); 
   }

   protected void doPost(HttpServletRequest request, HttpServletResponse 
   response) throws ServletException, IOException {}

}

XML

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">

 <!-- Welcome -->
 <display-name>WebApp</display-name>
 <welcome-file-list>
   <welcome-file>index.html</welcome-file>
 </welcome-file-list>

 <!-- Servlets -->
 <servlet>
   <servlet-name>UpdateListsServlet</servlet-name>
   <servlet-class>ajax.UpdateListsServlet</servlet-class>
 </servlet>
 <servlet-mapping>
   <servlet-name>UpdateListsServlet</servlet-name>
   <url-pattern>/UpdateListsServlet/*</url-pattern>
 </servlet-mapping>

 </web-app>