Java从入门到放弃-学习笔记-struts2 - Go语言中文社区

Java从入门到放弃-学习笔记-struts2


个人博客 https://raptor1998.top/

概述

百度了很多关于struts2的看法,不可否认,它曾经是非常优秀的框架,但是spring实在强势,而且和亲儿子springmvc无缝结合,使得struts2逐渐退出历史舞台。本着会用就行的原则,而且感觉代码很杂乱,可能是我编码得到方式有问题,这部分不做深入了解,仅知晓其使用方法和核心技术。

struts2笔记

struts2简介

struts2是基于MVC模式的web框架,主要有控制器组件(核心控制器和业务控制器)、模型组件(实现业务逻辑)、视图组件(html,jsp等)。

struts2组成结构图

组成结构图
工作流程

struts2实现信息管理

说明

案例均为班级学生信息管理,详情见点我进入
班级信息管理使用注解实现,学生信息管理使用配置文件方式实现
个人比较倾向于注解方式,配置文件冗杂,而且更改查找不易。

目录

目录列表

学生信息管理

web.xml

此为固定配置

  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
 <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

struts.xml

包含学生配置文件

<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="false" />
	 <include file="struts-student.xml" />
</struts>

struts-student.xml

<struts>

	 <package name="default" namespace="/" extends="struts-default">
      
      <action name="studentlist" class="action.StudentAction" method="list" >
            <result name="success">/student/list.jsp</result>
            <result name="error">/student/index.jsp</result>          
      </action>
      <action name="studentpreadd" class="action.StudentAction" method="preadd" >
            <result name="success">/student/add.jsp</result>
            <result name="error">/student/index.jsp</result>          
      </action>
      <action name="studentadd" class="action.StudentAction" method="add" >
            <result name="success">/student/add.jsp</result>
            <result name="error">/student/index.jsp</result>          
      </action>
      <action name="studentedit" class="action.StudentAction" method="edit" >
            <result name="success">/student/edit.jsp</result>
            <result name="error">/student/index.jsp</result>          
      </action>
      <action name="studentupdate" class="action.StudentAction" method="update" >
            <result name="success">/student/edit.jsp</result>
            <result name="error">/student/index.jsp</result>          
      </action>
      <action name="studentdelete" class="action.StudentAction" method="delete" >
            <result name="success">/student/list.jsp</result>
            <result name="error">/student/index.jsp</result>          
      </action>
    </package>

</struts>

StudentAction

setter和getter方法已删除

public class StudentAction {
	private List<Student> studentList=new ArrayList<Student>();
	private String info;
	private Student student;
	private int id;
	StudentDao studentDao =new StudentDao();
	public String list()
	{
		try {
			studentList=studentDao.queryAll();
			return "success";
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return "error";
		}
	}
	private List<Bj> bjList=new ArrayList<Bj>();
	BjDao bjDao=new BjDao();
	public String preadd()
	{
		try {
			bjList=bjDao.queryAll();
			return "success";
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return "error";
		}
	}
	private String sno;
	private String sname;
	private String sex;
	private int bjid;
	private Bj bj;
	public String add()
	{
		try {
			student=new Student();
			student.setSno(sno);
			student.setSname(sname);
			student.setSex(sex);
			bj=bjDao.findBjById(bjid);
			student.setBj(bj);
			studentDao.add(student);
			info="添加成功";
			return this.preadd();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return "error";
		}
	}
	public String delete()
	{
		try {
			studentDao.delete(id);
			return this.list();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return "error";
		}
	}
	public String edit()
	{
		try {
			bjList=bjDao.queryAll();
			student=studentDao.findStudentById(id);
			return "success";
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return "error";
		}
	}
	public String update()
	{
		try {
			student=new Student();
			student.setId(id);
			student.setSno(sno);
			student.setSname(sname);
			student.setSex(sex);
			bj=bjDao.findBjById(bjid);
			student.setBj(bj);
			studentDao.update(student);
			info="修改成功";
			return this.edit();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return "error";
		}
	}
}

班级信息管理

注解方式实现,故不需要配置其余的东西,只需要在web.xml中配置struts2即可。

public class BjAction {
	private List<Bj> bjList = new ArrayList<Bj>();
	BjDao bjDao = new BjDao();
	private String info;
	private String bjname;
	private int id;
	@Action(value = "bjlist", results = { @Result(name = "success", location = "/bj/list.jsp"),
			@Result(name = "error", location = "/index.jsp") })
	public String list() {
		try {
			bjList = bjDao.queryAll();
			return "success";
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return "error";
		}

	}

	@Action(value = "bjadd", results = { @Result(name = "success", location = "/bj/add.jsp"),
			@Result(name = "error", location = "/index.jsp") })
	public String add() {
		try {
			Bj bj = new Bj(bjname);
			bjDao.add(bj);
			info = "添加成功";
			return "success";
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return "error";
		}

	}

	@Action(value = "bjedit", results = { @Result(name = "success", location = "/bj/edit.jsp"),
			@Result(name = "error", location = "/index.jsp") })
	public String edit() {
		try {
			bj = bjDao.findBjById(id);
			return "success";
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return "error";
		}

	}

	@Action(value = "bjupdate", results = { @Result(name = "success", location = "/bj/edit.jsp"),
			@Result(name = "error", location = "/index.jsp") })
	public String update() {
		try {
			Bj bj = new Bj(id, bjname);
			bjDao.update(bj);
			info = "修改成功";
			return "success";
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return "error";
		}

	}
	private String delinfo;
	@Action(value = "bjdelete", results = { @Result(name = "success", location = "/bj/list.jsp"),
			@Result(name = "error", location = "/index.jsp") })
	public String delete() {
		try {
			if(bjDao.kongbj(id)==1) {
				delinfo="该班级还有学生,不能删除";
				return this.list();
			}
			else {
			bjDao.delete(id);	
			return this.list();
			}
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return "error";
		}

	}
}

github地址

https://github.com/Raptor1998/JavaEE

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/C18854805113/article/details/103857081
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 17:43:20
  • 阅读 ( 1710 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢