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

时间:2016-05-20 14:43:11

标签: java jsp el

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

有没有办法实现这个目标? 如果是的话,一个小例子对我有很大帮助,因为我对网络世界很陌生。

1 个答案:

答案 0 :(得分:0)

感谢Alan Hay的评论,我终于找到了解决方案。你需要下载这个神奇的东西叫做#34; ajax"然后 RC你的项目 - > Propertys - > Java构建路径 - >图书馆 - >添加外部罐子 - >选择以前下载的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>