2017-10-18 2 views
0

안녕하세요, 저는 JSP로 Spring MVC 애플리케이션에서 일하고 있습니다. 문제는 특정 순간에 div에 포함될 JSP 코드를 얻기 위해 컨트롤러 요청을합니다. ModelAndView 응답에서 JSP 코드를 얻는다. JQuery에 의해 제 div를 넣었습니다. 하지만 JSP 컨테이너 변수를 사용하고 싶을 때는 할 수 없다. 내 코드를 보여줄 게.JSP 자바 스크립트에서 부모 JSP 변수를 어떻게 사용합니까?

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; 

    } 

} 

내가 제목 테이블을 만들기 위해 모델과 뷰를 반환하고 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가 서버 측 언어이고 자바 스크립트 및 Ajax와의 상호 작용이 실제로 완벽하지는 않습니다. HTML을 직접 보내지 않으면 서 JSON을 사용하여 자바 스크립트에 필요한 데이터를 보내는 것이 훨씬 더 낫습니다.

그 후에 부모님이 이미 가지고 계신 데이터를 사용하시면 훨씬 편리합니다. "$ {user.rol.permisos}". "data-"태그에 넣은 다음 JQuery로 쉽게 읽을 수 있습니다.

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

을 그리고 이것에 의해 읽어 : 루프, 당신은 같은 것을 할 수

$("a#icon_1").data("nombre");