2016-06-15 4 views
1

다음 코드가 있는데 사용자가 한 이벤트에 게시되어 있으면 Asistir 버튼이 사라지고 싶습니다. 서블릿과 JSP로 작성하여 작동하게하려면 어떻게해야합니까? 감사.사용자가 어시스턴트했는지 확인하는 방법

는 JSP 버튼

<a href="formularioAsiste.jsp?id=${ev.idEvento}" class="btn btn-default"> 
         <span class="glyphicon glyphicon-check">Asistir</span>      
         </a> 

테이블을

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
       throws ServletException, IOException { 

      GestionAsistentes gestionAsistentes = new GestionAsistentes(); 

      GestionEventos gestionEventos = new GestionEventos(); 

      Collection<Evento> listaEventos = gestionEventos.list(); 

      Collection<Asiste> listaAsistentes = gestionAsistentes.list(); 

      request.setAttribute("asistentes", listaAsistentes); 


      request.setAttribute("eventos", listaEventos); 

      request.getRequestDispatcher("tabla.jsp").forward(request, response); 
      // request.getRequestDispatcher("TablaEventosServlet").forward(request, 
      // response); 
     } 

ListaAsistentes을 보여 서블릿은 ASIST 사용자와 그 사용자 코드와 관련된 이벤트가 :

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 


     request.setCharacterEncoding("UTF-8"); 

     String strIdEvento = request.getParameter("evento"); 
     Usuario asis = (Usuario) request.getSession().getAttribute("usuario"); 

     GestionEventos gesEven = new GestionEventos(); 

     Evento ev = gesEven.getEventoPorId(Integer.parseInt(strIdEvento)); 

     String nombreEntidad = request.getParameter("nombreEntidad"); 
     String nombreCuenta = request.getParameter("nombreCuenta"); 
     String iban = request.getParameter("iban"); 
     String numeroCuenta = request.getParameter("numeroCuenta"); 
     Date fechaPago = new Date(); 

     GestionAsistentes gestionAsistentes = new GestionAsistentes(); 



     Asiste asistente = new Asiste(nombreEntidad, nombreCuenta, iban, numeroCuenta, fechaPago); 

     asistente.setPrimaryKey(new UsuarioEventoId(asis,ev)); 

     gestionAsistentes.addAsistente(asistente); 

     request.setAttribute("asistentes", gestionAsistentes.list());  




     response.sendRedirect("TablaEventosServlet"); 
    } 
+0

약간 어려운 : 매개 변수 당신은 당신이

이 솔루션의 예 N ° 2 필요할 때마다 호출 할 수 있습니다 디. 더 구체적인 설명을 추가 할 수 있습니다. 'request.setAttribute'는 그렇게해야하고, JSP에서는'<% if (...) {%> ...'또는 더 좋은' ...'for 예. –

+0

언어로 인내심을 가져 주셔서 감사합니다. 목록 (listaAsistentes)에서 이벤트에 참석하는 사용자를 추출하려고합니다. 그리고 기록 된 사용자가 이벤트에 참석하는 경우 단추 또는 이와 유사한 것을 표시하지 마십시오. – Jose

답변

0

두 가지 솔루션이 있습니다 :

1/사용자가 가입 할 때 사용자 bean에 부울 매개 변수를 추가하십시오 (매개 변수)
2/서블릿에서 사용자가 subscibe를 클릭하면 해당 서블릿에 제어를 전달하면 해당 세션에서 다음과 같이 설정됩니다. a 당신의 JSP에 다음

public class ExampleServlet extends HttpServlet { 


    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 

//your code 



     request.getSession().setAttribute("subscribed", "isSubscribed"); 

     RequestDispatcher view = request.getRequestDispatcher("My.jsp"); 
     view.forward(request, response); 


    }} 

것이란 비 - 스페인어

<% String msg2=(String)request.getAttribute("subscribed");%> 

     <% if ((msg2==null || msg2.isEmpty())) { %> 
     <a href="ExampleServlet?id=${ev.idEvento}" class="btn btn-default"> 
         <span class="glyphicon glyphicon-check">Asistir</span>      
         </a>   
     <% } else if(msg2!=null) { %> 

     <% } %> 
+0

FYI : 스크립틀릿 사용은 권장되지 않습니다. [2003 년부터] (http://www.oracle.com/technetwork/articles/javase/code-convention-138726.html). [현재 기술 상태] (http://stackoverflow.com/tags/el/info)를 따라 잡고 시동기에 나쁜 습관을 가르치는 것을 중지하십시오. 또한 http://stackoverflow.com/q/3177733을 참조하십시오. – BalusC

+0

감사합니다. – Taha

+0

감사합니다. – Jose

관련 문제