2017-10-18 13 views
0

こんにちは皆私はJSPを使ってSpring MVCアプリケーションで作業しています。私の問題は特定の瞬間です。コントローラにdivコードにJSPコードを追加するよう要求します。私はModelAndViewの答えからJSPコードを取得します。私はそれをJQueryでdivにしました。 JSPコンテナ変数を使用したい場合、私はそれを行うことはできません。私は自分のコードを表示します。JSPのJavaScriptの親子変数を使用する方法は、子供を注入?

JSPコンテナ(親)

   <div class="row" id="principalDiv"> 
       <div id="menuZone"> 
        <c:forEach items="${user.rol.permisos}" var="permisos"> 


         <div class="col-xs-12 col-sm-6 col-md-4 col-lg-2 iconos methodDiv" id="${permisos.permisoMetodoMap}"> 
          <div> 

           <center> 
            <i class="fa <c:out value="${permisos.permisoMetodoIcono}" /> fa-5x" id="icon_${permisos.permisoMetodoMap}"></i> 
           </center> 
           <br> 
           <center> 
            <div> 
             <c:out value="${permisos.permisoNombre}" /> 
            </div> 
           </center> 

          </div> 

         </div> 
        </c:forEach> 
       </div> 

       <div id="loadZone"> 
      </div> 

     </div> 

聖霊降臨祭私は "loadZone" のコンテンツを取得するには、私のコントローラにrequesのを作ったボタン。

コードJSP要求

function loadAsp(element) { 
    $.get('getInclude', { 
     include : $(element).attr('id') 
    }, function(responseText) { 
     $('#loadZone').html(responseText); 
    }); 
} 

コントローラ

@Controller 
@RequestMapping(value = "/getInclude") 
public class IncludesDispatcherController { 

    @Autowired 
    FormModelBo boConsultas; 
    @GetMapping 
public ModelAndView getReportesView() { 
     ModelAndView mav = new ModelAndView("includes/reportes"); 
     try { 
      mav.addObject("consultas", boConsultas.consultaGeneral()); 
     } catch (SQLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     return mav; 

    } 

} 

Iタイトル一覧表を作るためにモデルとビューを返し、それは私が入れた上でjQueryのフラグメントで見ることができますdivのhtml()メソッドでの表示

JSP

は(子供)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ page isELIgnored="false"%> 

     <div> 
      <center> 
       <legend> 
<!--    //<img alt="" src="img/pen.png"> --> 
        Censo M&eacute;tricas Triage ${user.nombre}<br /> <--- this is parent variable. 
       </legend> 
      </center> 
     </div> 
     <form action="${user.rol.rolMap}/createExcel" method="POST" role="form" id=""> 

      <div class="form-group"> 

       <!-- -------------------------------------------first section--------------------------- --> 
       <div class="row" style="padding-bottom: 22px !important;"> 
        <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4"> 

         <div class="form-group"> 
          <div class="form-group "> 
           <div class="input-group "> 
            <span class="input-group-addon">Fecha inicio</span> <input type="date" id="fecha_1" name="fecha_1" /> 
           </div> 
           <div class="help-block with-errors"></div> 
          </div> 

         </div> 
        </div> 

        <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4"> 
         <div class="form-group"> 
          <div class="form-group "> 
           <div class="input-group "> 
            <span class="input-group-addon">Fecha final</span> <input type="date" id="fecha_2" name="fecha_2" /> 
           </div> 
           <div class="help-block with-errors"></div> 
          </div> 

         </div> 
        </div> 

        <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4"> 
         <div class="form-group"> 
          <div class="input-group"> 
           <button type="submit" class="btn btn-primary">Generar Reporte</button> 
          </div> 
          <div class="help-block with-errors"></div> 
         </div> 
        </div> 
       </div> 
      </div> 

     </form> 


     <div style="padding-bottom: 22px !important;"> 
      <table class="table"> 
       <thead> 
        <tr> 
         <th>Nombre de médico</th> 
         <th>Número de consultas</th> 

        </tr> 
       </thead> 
       <tbody> 
        <c:forEach items="${consultas}" var="consultasLista"> 
         <tr> 
          <td><c:out value="${consultasLista[0]} ${consultasLista[1]} ${consultasLista[2]}" /></td> 
          <td><c:out value="${consultasLista[3]}" /></td> 
         </tr> 
        </c:forEach> 
       </tbody> 
      </table> 

     </div> 

私が働いている私のModelAndViewに送るモデル変数が含まれるが、私の親はしませんでした。

宣言が

<% 
String variable = "test"; 
%> 

または

request.setAttribute("attrName", myValue); (for catch it in my children JSP with request.getAttribute()) 

ではなく、あまりにも作品をvariblaesように私は他の方法としてみてください。 JSPの親コードがalredyコンパイルされているかどうかわかりません。私は親変数にアクセスする必要があります。

ご協力いただき、ありがとうございます。

+0

JSPコードは、サーバーで実行されます。私はどこから「JSPをインクルードするのか」を知りませんが、このコードをajax-answerでブラウザに送信すると、 Holger

答えて

0

変数$ {user.nombre}がIncludesDispatcherControllerに必要な場合は、このコントローラに、次にビューに注入する必要があります。それ以外の場合はnullになります。

とにかく、誰かがすでにJSPを言及しているように、サーバーサイドの言語であり、JavaScriptとAjaxとのやりとりは本当に完璧ではありません。 HTMLを直接送信しないでくださいが、たとえばJSONを使用してJavaScriptに必要なデータを送信するだけの方がはるかに優れています。

その後、既に親にあるデータを使用すると、より良い結果が得られます。"$ {user.rol.permisos}" "data-"タグに入れて、JQueryで簡単に読むことができます。

<a href="#" id="icon_1" data-nombre="${permisos.permisoNombre}"> 

をそして、このことにより、それを読む:あなたのループでは、このような何かを行うことができます

$("a#icon_1").data("nombre"); 
関連する問題