2010-11-06 36 views
0

我有一個簡單的頁面,我希望它是可排序的,所以我得到了jquery和tablesorter。我的繼承人頁:jQuery Tablesorter將無法在JSP上工作

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <link rel="stylesheet" type="text/css" href="/css/base.css"/> 
    <script src="/javascript/jquery-1.4.3.js" type="text/javascript"></script> 
    <script src="/javascript/jquery.tablesorter.js" type="text/javascript"></script> 
    <title>JSP Page</title> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#tabela").tableSorter(); 
     }); 
    </script> 
</head> 

<body>   
    <p> 
     <label><h3>Lista de Personagens</h3></label> 
    </p> 
    <p> 
     <a href="inserir.htm">Novo Personagem</a> 
    </p> 
    <table id="tabela" border="1" cellspacing="0" cellpadding="0"> 
     <tr> 
      <th>Codigo</th> 
      <th>Nome</th> 
      <th>Classe</th> 
      <th colspan="3">Opções</th> 
     </tr> 
     <c:forEach items="${lista}" var="p"> 
      <tr> 
       <td>${p.id}</td> 
       <td>${p.nome}</td> 
       <td>${p.classe}</td> 
      <form id="formAlterar${p.id}" method="get" action="alterar.htm"> 
       <td> 
        <input type="hidden" name="id" value="${p.id}" /> 
        <a href="#" onclick="document.getElementById('formAlterar${p.id}').submit()">Alterar</a> 
       </td> 
      </form> 
      <form id="formConsultar${p.id}" method="post" action="consultar.htm"> 
       <td> 
        <input type="hidden" name="id" value="${p.id}" /> 
        <a href="#" onclick="document.getElementById('formConsultar${p.id}').submit()">Consultar</a> 
       </td> 
      </form> 
      <form id="formExcluir${p.id}" method="post" action="excluir.htm"> 
       <td> 
        <input type="hidden" name="id" value="${p.id}" /> 
        <a href="#" onclick="document.getElementById('formExcluir${p.id}').submit()">Excluir</a> 
       </td> 
      </form> 
     </tr> 
    </c:forEach> 
</table> 

我在同一水平WEB-INF的JavaScript文件夾。我想我指出了正確的地方。但是當我加載頁面時,沒有任何反應,表格statys固定,沒有排序。它可以與使用Spring MVC的事實相關聯,並且映射使它指向錯誤的位置?我的繼承人映射方法:

@RequestMapping("/personagem/index.htm") 
public ModelAndView listar(@RequestParam(value = "mensagem", required = false) String mensagem) { 
    ArrayList<Personagem> lista = getPersonagemService().listarTodos(); 
    return new ModelAndView("listar", "lista", lista); 
} 

編輯:生成的HTML代碼(這是一個有點長,所以我切斷重複部分):

<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <link rel="stylesheet" type="text/css" href="/css/base.css"/> 
    <script src="/javascript/jquery-1.4.3.js" type="text/javascript"></script> 
    <script src="/javascript/jquery.tablesorter.js" type="text/javascript"></script> 
    <title>JSP Page</title> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#tabela").tableSorter(); 
     }); 
    </script> 
</head> 

<body>   
    <p> 
     <label><h3>Lista de Personagens</h3></label> 
    </p> 
    <p> 
     <a href="inserir.htm">Novo Personagem</a> 
    </p> 
    <table id="tabela" border="1" cellspacing="0" cellpadding="0"> 
     <tr> 
      <th align="center">Nome</th> 
      <th align="center">Classe</th> 
      <th width="250" colspan="3">Opções</th> 
     </tr> 

      <tr> 
       <td width="150" align="center">Melys</td> 
       <td width="150" align="center">Priest</td> 
      <form id="formAlterar4" method="get" action="alterar.htm"> 
       <td align="center"> 
        <input type="hidden" name="id" value="4" /> 
        <a href="#" onclick="document.getElementById('formAlterar4').submit()">Alterar</a> 
       </td> 
      </form> 
      <form id="formConsultar4" method="post" action="consultar.htm"> 
       <td align="center"> 
        <input type="hidden" name="id" value="4" /> 
        <a href="#" onclick="document.getElementById('formConsultar4').submit()">Consultar</a> 
       </td> 
      </form> 
      <form id="formExcluir4" method="post" action="excluir.htm"> 
       <td align="center"> 
        <input type="hidden" name="id" value="4" /> 
        <a href="#" onclick="document.getElementById('formExcluir4').submit()">Excluir</a> 
       </td> 
      </form> 
     </tr> 
+0

我們能否看到生成的實際HTML?你的頁面能夠加載JS文件嗎? – 2010-11-06 22:57:18

+0

我不知道,生病發布html – onildo 2010-11-06 23:53:54

+0

我剛剛編輯並添加了HTML代碼 – onildo 2010-11-06 23:59:17

回答

1

你有沒有確認以下資源被正確送達? (例如,它們不是404,他們是正確的內容類型等)

  • /css/base.css
  • /javascript/jquery-1.4.3.js
  • /JavaScript的/ jquery.tablesorter.js

如果是這樣,你有沒有用過的東西,如Firefox的錯誤控制檯以確保有在你的代碼沒有JavaScript錯誤?

另外,爲什麼你在你的表格中嵌入窗體似乎只是鏈接到一個帶有ID的頁面?換句話說,爲什麼不鏈接到頁面?

+0

我檢查了錯誤控制檯,我得到的唯一錯誤是'$未定義' – onildo 2010-11-08 02:09:13

+0

我將jQuery核心引用更改爲遠程版本,並停止顯示該錯誤。問題仍然存在,因爲tablesorter是本地的。我無法獲得正確的本地路徑。 – onildo 2010-11-08 02:16:27

+0

所以,聽起來好像三種資源沒有得到正確的服務。這解釋了您收到的錯誤消息,以及爲什麼當您鏈接到jQuery的遠程副本時它消失了。我不熟悉Spring MVC,因此您可能需要查閱有關提供靜態資源的文檔。 – 2010-11-08 02:37:46