【问题标题】:Javascript not calling servletJavascript不调用servlet
【发布时间】:2014-09-30 12:50:18
【问题描述】:

我从我的 javascript 传递一个 URL 来调用一个特定的 servlet。配置在 web.xml 中完成。

这是我的 JS 调用:

function ModelForYear()
{   var url = "modelforyear.html";
    var e = document.getElementById("yearId");
    var year = e.options[e.selectedIndex].text;
    url = url + "?yearId=" + year ;    
}

这是我的 web.xml 配置:

<servlet>
    <servlet-name>ModelByYear</servlet-name>
    <servlet-class>com.harley_davidson.pod.action.ModelByYear</servlet-class>
</servlet>
<servlet-mapping>
     <servlet-name>ModelByYear</servlet-name>
     <url-pattern>*.html</url-pattern>
</servlet-mapping>

但是,我的 servlet 类没有被调用。 请帮忙。

【问题讨论】:

  • 您在 JS 代码中的哪个位置发送 HTTP 请求?您的函数ModelForYear() 只是在构造一个 URL 字符串,但是您实际上是如何从 JS 请求该 Servlet 的呢?
  • 在您的 JS 代码中,您只是在创建 url 变量,但您并没有提交它。你可以试试window.location = url,因为这里的 url 是你的 url 变量。
  • 或者另一个选择是document.location.href = url,这里的url是一样的,你的url变量。

标签: java javascript servlets web.xml


【解决方案1】:

ModelForYear() 方法中构建 URL 后,您不会对其进行任何操作,因此我建议将浏览器的 URL 设置为您创建的 URL。

您可以这样做:

location.replace(url);

在你建立新的 url 之后

【讨论】:

    【解决方案2】:

    除了你的ModelForYear() JS 函数代码。 也写在下面。

     window.location = url;
    

    或者另一种选择是,

     document.location.href = url;
    

    【讨论】:

    • 您确定 OP 不是在寻找 AJAX 调用吗?
    • AJAX 也可能是一种替代方案,但我只是建议了可以从 JS 调用 URL 的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 2011-09-07
    • 1970-01-01
    • 2014-04-13
    • 2011-03-02
    • 2015-10-07
    • 1970-01-01
    相关资源
    最近更新 更多