javascript 如何在JSP页中包含外部JS文件

vc6uscn9  于 2023-01-29  发布在  Java
关注(0)|答案(4)|浏览(133)

我有一个spring mvc应用程序,在我的主页中,我需要使用一个javascript文件。我尝试这样包含文件:

<script type="text/javascript" src="js/index.js"></script>

但当我运行应用程序时,系统行为似乎没有脚本在运行。

<script type="text/javascript" src="<c:url value='js/index.js'/>"></script>

但结果是一样的,有人知道为什么会这样吗?
附言:我的网页的整个代码是:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title>HorarioLivre</title>

  <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script>
  <script type="text/javascript" src="js/index.js"></script>

  <link rel="stylesheet" href="css/style-main.css">
  <link rel="stylesheet" href="css/style-popup.css">
</head>
<body>
  <header>
    <div class="container">
      <h1><a href="#">HorarioLivre</a></h1>
      <nav>
        <ul>
          <li><a href="listagem_evento.html" class="icon evento">Eventos</a></li>
          <li><a href="cadastra_horario.html" class="icon horario">Cadastrar Horarios</a></li>
          <li><a href="listagem_horario.html" class="icon horario">Listar Horarios</a></li>
          <li><a href="listagem_usuario.html" class="icon usuario">Usuarios</a></li>
          <li><a href="#">${usuario.nome}</a>
            <ul>
                <li><a href="usuario_perfil.html" class="icon perfil">Perfil</a></li>
                <li><a href="usuario_config.html" class="icon settings">Configura&ccedil;&otilde;es</a></li>
                <li><a href="usuario_logoff.html" class="icon logout">Sair</a></li>
            </ul>
          </li>
        </ul>
      </nav>
    </div>
  </header>
  <div id="results">
        <a href="#" id="close">Fechar</a>
        <div id="content"></div> 
  </div>
</body>
</html>

脚本应该在弹出窗口中打开我的子页面,但它们是在浏览器窗口中打开的。

    • 更新1**

我的index.js是:

$(document).ready(function(){
   setupPopup();
});

function setupPopup() {
   $('a').click(function() {
       $('#content').load($(this).attr('href'));
      $('#container').append('<div id="cover">');
      $('#results').fadeIn(500);
      popupPosition();
   });

   $('#close').click(function() {
      $('#results').fadeOut(100);
      $('#cover').remove();
   });

   $(window).bind('resize', popupPosition);
}

function popupPosition() {
   if(!$("#results").is(':visible')){ return; }

   $("#results").css({
      left: ($(window).width() - $('#results').width()) / 2,
      top: ($(window).width() - $('#results').width()) / 7,
      position:'absolute'
   });

   $('#results').draggable();
}
nnsrf1az

nnsrf1az1#

但当我运行应用程序时,系统行为似乎没有脚本在运行。
这是因为浏览器无法从指定位置加载javascript 'index.js'。如果打开浏览器控制台并转到'网络'选项卡,则会看到404(未找到资源)。您不能以这种方式在JSP文件中指定JavaScript的相对URL。
您需要提供您的文件夹结构(index.js在项目中的位置)以及如何配置web.xml。但是如果您尝试以下操作,它肯定会工作:
<script type="text/javascript" src="${pageContext.request.contextPath}/js/index.js"></script>
然后将包含“index.js”的“js”文件夹与“WEB-INF”保持在同一级别。

ggazkfy8

ggazkfy82#

检查索引文件的路径,然后确保代码是正确的。我假设js是一个文件夹。张贴index.js代码。

ql3eal8s

ql3eal8s3#

为了节省我花了半个小时来解决这个问题,VHS的答案需要更新给任何升级到Jakarta的人。参考需要:<script type="text/javascript" src="${jakarta.servlet.jsp.PageContext}/js/index.js"></script>

pes8fvy9

pes8fvy94#

如果“myJavascript.js”与jsp页面位于同一目录中:

<script type="text/javascript"><%@include file="myJavascript.js" %></script>

相关问题