Struts 2 中统计按钮的点击次数并保存到 MySQL 数据库?

问题描述 投票:0回答:1

如何统计按钮的点击次数并保存到MySql数据库中?新会话中的点击次数应添加到现有值中。

这是我创建的 DAO:

public Poll updatePoll(int id){
        Session s = factory.getCurrentSession();
        Transaction t = s.beginTransaction();
    
        Poll poll = (Poll) s.get(Poll.class, id);
        Citizen citizen = (Citizen) s.get(Citizen.class, 1);
        List<Poll> list = citizen.getPolledList();
    
        boolean check = list.contains(poll);
        if(!check){
            Query q = s.createSQLQuery("update Poll set poll_count = poll_count + 1 where poll_id = id");
            q.executeUpdate();
            s.update(poll);
        }else{
            return poll;
        }
        s.close();
        return poll;        
    }

这是创建的

Action

    public String submitVote(){
        ServletContext ctx = ServletActionContext.getServletContext();
        ProjectDAO dao = (ProjectDAO)ctx.getAttribute("DAO");
        Poll poll = dao.updatePoll(poll_id);
    
        String flag = "error";
    
        if (poll != null){
            ServletActionContext.getRequest().getSession(true).setAttribute("POLL", poll);
            flag = "voted";
        }
        return flag;
    }

我知道我犯了严重的错误,我发布的代码可能完全是垃圾。但我希望,意图是明确的,因此,如果可能的话,请向我伸出援助之手。我的项目主要是 JSP (Struts 2)、jQuery 和 MySQL 5.1,所以请不要像我之前发现的那样建议 PHP 代码。

java mysql hibernate jsp struts2
1个回答
0
投票

该框架用于包装用户的 servlet 内容,如果您想做类似的事情,您应该使用它的功能

ServletActionContext.getRequest().getSession(true) 

但是

Map m = ActionContext.getContext().getSession(); 
© www.soinside.com 2019 - 2024. All rights reserved.