为什么我在jsp中看不到我的$ {token}?

时间:2016-08-02 11:32:26

标签: java jsp

我在尝试将变量传递给JSP时遇到了问题。这是我的servlet代码:

public class TwilioServlet extends HttpServlet {

    private static final long serialVersionUID = 3645708904327108592L;
    public static final String ACCOUNT_SID = "account_sid";
    public static final String AUTH_TOKEN = "auth_token";
    public static final String APP_SID = "app_sid";

    public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

        TwilioCapability capability = new TwilioCapability(ACCOUNT_SID, AUTH_TOKEN);
        capability.allowClientOutgoing(APP_SID);

        String token = null;
        try {
            token = capability.generateToken();
        } catch (DomainException e) {
            e.printStackTrace();
        }
        // Forward the token information to a JSP view
        response.setContentType("text/html");
        request.setAttribute("token", token);
        System.out.println("Capability toke is " + token);
        RequestDispatcher view = request.getRequestDispatcher("client.jsp");
        view.forward(request, response);
    }
}

而且,这是我的client.jsp文件:

<!DOCTYPE html>
<html>
  <head>
    <title>Hello Client Monkey 1</title>
    <script type="text/javascript"
      src="//media.twiliocdn.com/sdk/js/client/v1.3/twilio.min.js"></script>
    <script type="text/javascript"
      src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
    </script>
    <link href="//static0.twilio.com/resources/quickstart/client.css"
      type="text/css" rel="stylesheet" />
    <script type="text/javascript">

    /* Create the Client with a Capability Token */
    Twilio.Device.setup("${token}", {debug: true});

    /* Let us know when the client is ready. */
    Twilio.Device.ready(function (device) {
        $("#log").text("Ready");
    });

    /* Report any errors on the screen */
    Twilio.Device.error(function (error) {
        $("#log").text("Error: " + error.message);
    });

    Twilio.Device.connect(function (conn) {
        $("#log").text("Successfully established call");
    });

    /* Connect to Twilio when we call this function. */
    function call() {
        Twilio.Device.connect();
    }
    </script>
  </head>
  <body>
    <button class="call" onclick="call();">Call</button>

    <div id="log">Loading pigeons...</div>
  </body>
</html>

这是this tutorial

我通过以下网址访问我的网页:

http://localhost:8080/TwillioTest1/TwilioServlet

为什么${token}没有被替换?

2 个答案:

答案 0 :(得分:1)

您问题的可能答案 - click。不要害怕使用谷歌的力量。

<强>更新

根据@dur的建议,我在此处链接部分答案:

  

从web.xml中删除该DOCTYPE,一切都很好。一个有效的Servlet 3.0(Tomcat 7,JBoss AS 6/7,GlassFish 3等)兼容的web.xml完全如下所示,没有任何DOCTYPE:

<?xml version="1.0" encoding="UTF-8"?>
<web-app 
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
</web-app>

答案 1 :(得分:0)

EL表达式可能被禁用;您可能必须在web.xml中激活它们。 Can you try this?