如何检查用户是否已加入并标记

时间:2016-06-15 08:59:08

标签: java jsp servlets

我有以下代码,如果用户在一个事件中被捕,我希望Asistir按钮消失,我应该在servlet和jsp中写什么才能使它工作?感谢。

jsp按钮

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

显示表格的Servlet

    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");
    }

1 个答案:

答案 0 :(得分:0)

有两种解决方案:

1 /当用户订阅时,在用户的bean中添加一个布尔参数(参数)
2 /在servlet中,当用户单击subscibe时,您将控件传递给特定的servlet,它将在会话中设置一个参数,您可以随时调用它

解决方案N°2的一个例子:

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); 


    }}

然后在你的JSP中

  <% 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) { %>

         <% }  %>