jstl没有在使用jquery load()加载的jsp文件中执行

时间:2018-02-04 00:53:19

标签: javascript java jquery jsp

我有部分带有jstl代码的jsp文件:

 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <form method="POST" action="EntrerClient" id="submitparticulier" 
 class=submitparticulier">
 <fieldset>
 <input type="hidden" id="Id" name="idform" value="inscp">
 <select name="genre" class="genre">
 <option>Monsieur</option>
 <option>Melle/Madame</option>
 </select>
 </br>
 <label for="etat">Nom <span class="requis">*</span></label></br>
 <input type="text" id="nom" name="nom" value="<c:out      
 value="${particulier.getNom()}"/>" size="20" maxlength="60" />
 <span class="erreur">${form.erreurs['nom']}</span>
 <br />
 <p class="${empty form.erreurs ? 'succes' : 
 'erreur'}">${form.resultat}</p>
 <br />
 <p id="adcli"><a href='#ADCLI'>Valider</a></p>
 </fieldset>
 </form>

和主要的jsp:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
...
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1 
/jquery.min.js"></script>
<script src="ressources/_javasctipt.js"></script>
    <script type="text/javascript">
    constructform("<c:out value="${param['par']}"/>");
    </script>
...

使用jquery:

加载部分文件
...
function constructform(param) {
var principal = $("#Gc_FenettrePrincipale");
principal.empty();
principal.append("<div class=\"Gc_FenettreSec\" id=\"_ADD\"><p>Ajout 
Clients</p></div>");
 principal.append("<div style=\"width:700px;padding:20px;S\">");
 principal.append("<div id=\"ajout_client\" class=\"ajout_client\">");
 principal.append("</div></div>");
 var add=$("#add");
    add.removeClass('current');
        $("#adcli").addClass('current');
        $('#ajout_client.div').remove();
        var form_particulier=$("<div/>");
        form_particulier.load("ressources/PaletParticulier.jsp");
        //form_particulier.html();
        var formul = $("#ajout_client");
        formul.append("<select name=\"type\" class=\"type
 \"><option>Particulier</option><option>Organisme</option></select>");
        formul.append(form_particulier);

}     ...

      <input type="text" id="nom" name="nom" value="<c:out      
 value="${particulier.getNom()}"/>"

servlet调用     ...

request.setAttribute(ATT_FORM,form);                    
request.setAttribute(ATT_PARTICULIER,particulier);               
response.setContentType("text/html");        
this.getServletContext().getRequestDispatcher(VUE).forward(request, 
 response);
部分jsp中的

不起作用,但如果使用它在主jsp中工作,我无法理解为什么 在irc的java频道中,你建议去jsf,我现在不能这样了,我离开了deley

2 个答案:

答案 0 :(得分:0)

创意1:如果您的JavaScript函数constructform位于/ressources/_javasctipt.js,那么load请求可能因相对网址而寻找/ressources/ressources/partial.jsp

创意2:您是否尝试省略部分JSP中的<!DOCTYPE html>

答案 1 :(得分:0)

我发现load()函数是http resquet,GET或POST,并且使用servlet来加载jsp,所以我们要创建hol jsp。 我没有看到更好的解决方案 &#34;另一个servlet或其他jsp&#34;