博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
六、入门之新建action类
阅读量:2050 次
发布时间:2019-04-28

本文共 2777 字,大约阅读时间需要 9 分钟。

到这一步,已经算是完成很多一部分内容了,后端代码也就差不多写完了。在这里需要注意的是,数据要和前端需求相结合,所以在开发过程中往往是将增删改查分成四个部分来写,分别结合前端来边修改边写后端,但是在这里由于篇幅有限,我将前端和后端都写好了,这是后端的action内容,供大家参考:

package action;import employee.emp;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.sun.net.httpserver.HttpServer;import util.jdbcDAO;import jdk.nashorn.internal.ir.RuntimeNode;import org.apache.struts2.ServletActionContext;import java.util.ArrayList;public class empaction extends ActionSupport {    private static final long serialVersionUID = 1L;    public emp getEmployee() {        return employee;    }    public void setEmployee(emp employee) {        this.employee = employee;    }    private emp employee = new emp();    public ArrayList
getEmployees() { return employees; } public void setEmployees(ArrayList
employees) { this.employees = employees; } private ArrayList
employees = new ArrayList
(); public int getId() { return Id; } public void setId(int id) { Id = id; } private int Id; public int getNewID() { return newID; } public void setNewID(int newID) { this.newID = newID; } private int newID; public String listAll() { employees = jdbcDAO.queryAll(); ActionContext.getContext().put("employees", employees); System.out.println(employees.size()); return "success"; } //这是跳转到确认页的Action public String toAdd() { employees = jdbcDAO.queryAll(); //以下是为了添加人的时候确认新增人id int size = employees.size(); emp emp = employees.get(size-1); newID = emp.getId()+1; System.out.println("id="+newID); ActionContext.getContext().put("newID", newID); return "success"; } public String addEmp() { System.out.println(employee); jdbcDAO.insert(employee); return "success"; } public String editEmp() { System.out.println("更新操作"); System.out.println(employee); jdbcDAO.update(employee); return "success"; } public String selectEmp() { System.out.println(Id); employee = jdbcDAO.select(Id); System.out.println(employee);// ActionContext.getContext().setSession(employee); ActionContext.getContext().put("emp",employee); return "success"; } public String deleteEmp() { jdbcDAO.delete(Id); return "success"; }}

这里有好多东西需要注意:

首先是从后端传值到前端用的是:

 ActionContext.getContext().put("emp",employee);

容器中的值只对当前页面有用,也就是你在调用listAll的时候,将整个数据放进了employee中传到前端,当你在前端点击页面跳转的时候上一页面的employee就会失效了,在页面跳转的时候

必须重新获取,所以所有的action里面除了必要的增删改查还添加了一个toAdd,目的就是用来进行页面跳转的同时计算新增字段的id,而不能直接在上一页面的employee中来获取

 在前端获取后端值的方式也有很多,在后端获取前端值的方式也有很多,这些我在最末尾,将用一篇文章来总结。

转载地址:http://tawlf.baihongyu.com/

你可能感兴趣的文章
让你的网站用上炫酷的中文字体
查看>>
使用 font-spider 对 webfont 网页字体进行压缩
查看>>
云原生服务网格 Istio 1.4 部署指南
查看>>
让 Linux 防火墙新秀 nftables 为你的 VPS 保驾护航
查看>>
Istio 1.4 部署指南
查看>>
贫苦家庭用户的 Envoy xDS 控制平面
查看>>
Kubernetes Pod 网络精髓:pause 容器详解
查看>>
Docker 技术鼻祖 Linux Namespace 入门系列:Namespace API
查看>>
使用 ebpf 深入分析容器网络 dup 包问题
查看>>
Kubelet 中的 “PLEG is not healthy” 到底是个什么鬼?
查看>>
超详细的网络抓包神器 Tcpdump 使用指南
查看>>
从 Kubernetes 资源控制到开放应用模型,控制器的进化之旅
查看>>
从此以后运维与开发过上了没羞没臊的性福生活
查看>>
教你如何优雅地魔改 Grafana 主题,太实用了!
查看>>
让我们来看看回到单体的 Istio 到底该怎么部署
查看>>
超详细的网络抓包神器 tcpdump 使用指南
查看>>
iTerm2 都不会用,还敢自称老司机?(上)
查看>>
两个奇技淫巧,将 Docker 镜像体积减小 99%
查看>>
Istio 1.5 部署指南修正版
查看>>
不要轻易使用 Alpine 镜像来构建 Docker 镜像,有坑!
查看>>