实现struts2+mysql+jquery基于下拉菜单的多样查询项目

版权声明:本文为博主原创文章,大家多多转载,相互学习! https://blog.csdn.net/qq_41893274/article/details/86479289

新建项目,目录结构如下所示

效果图

按班级查询

按班级查询实现二级联动显示该班学生

按性别查询

按总分或平均分查询

mysql数据库

实现全部源代码

前端test.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<%@page import="com.domain.Names"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="js/jquery-1.6.2.js"></script>
<script type="text/javascript" src="js/show.js"></script>
<link rel="stylesheet" type="text/css" href="style/show.css">
<title>实验测试3</title>
</head>
<body style="background-color:PaleGreen">
  <s:a href="test.jsp">回首页</s:a><br>
  <s:select id="grade" onchange="myfind()" 
  list="{'请选择班级..','ALL','First','Second','Three'}" name="grade" label="选择班级"></s:select>
  <s:select id="stu" list="pList" listKey="id" listValue="name" label="学生"></s:select><br> 
  <s:radio  name="sex" label="性别"  list="#{'0':'男','1':'女' }" onclick="mysex(this)"></s:radio><br> 
  <input type="button" id="gradeaa" value="总分"/>
  <input type="button" id="average" value="平均分"/>  
  <hr/>
   <table border="1px black solid">
   <tr>
   <td>学号</td>
   <td>姓名</td>
   <td>性别</td>
   <td>数学</td>
   <td>语文</td>
   <td>总分</td>
   </tr>
   <s:iterator id="listdata" value="listas">
   <tr>
   <td><s:property value="id"/></td>
   <td><s:property value="name"/></td>
   <td><s:property value="sex"/> </td>
   <td><s:property value="math"/></td>
    <td><s:property value="chinese"/></td>
    <s:if test="score>170">
     <td><s:property value="score"/></td>
   </s:if>
   <s:else>
    <td style="color:red;border-color: black;"><s:property value="score"/> </td>
   </s:else>   
   </tr>
   </s:iterator>
   </table>    
   <table   border="1px black solid">
   <tr>
   <td>排名</td>
   <td>班级</td>
   <td>总分</td>
   <td>平均分</td>
   </tr>
   <s:iterator value="ggList">
   <tr>
   <td><s:property value="rankg"/></td>
   <td><s:property value="grade"/></td>
   <s:if test="sum>320">
     <td><s:property value="sum"/> </td>
   </s:if>
   <s:else>
    <td style="color: red;border-color: black;"><s:property value="sum"/> </td>
   </s:else>
   <s:if test="average>170">
    <td><s:property value="average"/></td>
   </s:if>
   <s:else>
    <td style="color: red;border-color: black;"><s:property value="average"/> </td>
   </s:else>
    
   </tr>
   </s:iterator>
   </table> 
     
</body>
</html>

test.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>首页</title>
</head>
<body style="background-color:PaleGreen">
  <s:form action="First" method="post">
    <s:select  list="{'请选择班级..','ALL','First','Second','Three'}" name="grade" label="选择班级"></s:select>
  <s:submit  value="提交"></s:submit>
  </s:form> 
</body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <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>
</web-app>

show.js

function myfind(){
	var select = document.getElementById("grade");
	var grade = select.value;
	switch(grade){
	case "ALL":
		var url = "First.action?grade=" + grade;
	    window.location.href=url;
		break;
	case "First":
		var url = "First.action?grade=" + grade;
	    window.location.href=url;
	     break;
	case "Second": 
		var url = "First.action?grade=" + grade;
	    window.location.href=url;
		 break;
	case "Three":
		var url = "First.action?grade=" + grade;
	    window.location.href=url;
		break;
	} 
	$("#div2").hide();
	$("#div1").show();
}
function mysex(obj){
	var sex=obj.value;
	switch (sex) {
	case "0":
		var url = "Sex.action?sex=" + sex;
	    window.location.href=url;
		break;
	case "1":
		var url = "Sex.action?sex=" + sex;
	    window.location.href=url;
		break;	
	} 
	
	
}
$(function(){
   $("#partsex").live("click",function(){
		 $("#tr2").hide();
		 $("#tr1").show();
	   }); 
   //总分
   $("#gradeaa").live("click",function(){
	 
	 var url = "Grade.action?m=" + "a";
	   window.location.href=url;
	   $("#div1").hide();
		 $("#div2").show();
   });
   //平均分
   $("#average").click(function(){
		 var url = "Grade.action?m=" +"b";
		   window.location.href=url;
		   $("#div1").hide();
			 $("#div2").show();
	   });
   
   
});

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

  <struts>
   <constant name="struts.devMode" value="true"/>
   <package name="student" namespace="/" extends="struts-default"> <!-- action的集合 -->
   		<action name="Student" class="com.action.StudentAction" method="ALLfind">
   			<result name="success">/show.jsp</result>
   		</action> 
   		<action name="Sex" class="com.action.SexAction">
   			<result name="success">/show.jsp</result>
   		</action>  
   		<action name="First" class="com.action.StudentAction" method="whichgrade">
   			<result name="grade">/show.jsp</result>
   		</action>
   		<action name="Grade" class="com.action.GradeAction">
   			<result name="average">/show.jsp</result>
   		</action> 
   </package>
     
</struts>    

com.action  

   GradeAction.java

package com.action;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import com.dao.GradeDao;
import com.domain.Grade;
import com.domain.Names;
import com.domain.Student;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class GradeAction extends ActionSupport {
   //使用域模型的方式
	private String m;
	 
	private Grade grade1;
	private List<Grade> ggList;
	private List<Names> pList;
	
	public String getM() {
		return m;
	}
	public void setM(String m) {
		this.m = m;
	}
	public Grade getGrade1() {
		return grade1;
	}
	public void setGrade1(Grade grade1) {
		this.grade1 = grade1;
	}
	 
	public List<Grade> getGgList() {
		return ggList;
	}
	public void setGgList(List<Grade> ggList) {
		this.ggList = ggList;
	}
	public List<Names> getpList() {
		return pList;
	}
	public void setpList(List<Names> pList) {
		this.pList = pList;
	}
	@Override
	public String execute() throws Exception {
		ActionContext actionContext = ActionContext.getContext();
		Map<String, Object> session = ActionContext.getContext().getSession();//struts2的内部命令
		GradeDao dao=new GradeDao();
		ggList=dao.selectGrade(m);
		Iterator<Grade> it=ggList.iterator();
		pList=new ArrayList<Names>();
		while(it.hasNext()){
			int i=1;i++;
			Grade st=it.next();
			pList.add(new Names(i,st.getGrade())); 
		}
		actionContext.put("pList", pList);
		session.put("ggList", ggList);
		
		return "average";
	}
	public static void main(String[] args) {
		GradeDao dao=new GradeDao();
		dao.selectGrade("a");
	}
}

SexAction.java

package com.action;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import com.dao.StudentDao;
import com.domain.Names;
import com.domain.Student;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class SexAction extends ActionSupport {
	 
    private String sex;
    List<Student> listas;
    private List<Names> pList;
	  
	public List<Names> getpList() {
		return pList;
	}
	public void setpList(List<Names> pList) {
		this.pList = pList;
	}
	public List<Student> getListas() {
		return listas;
	}
	public void setListas(List<Student> listas) {
		this.listas = listas;
	}
	public String getSex() { 
		  
		return sex;
	}
	public void setSex(String sex) {
		if("0".equals(sex))
			sex="男";
		else
		  sex="女";
		this.sex = sex;
	}
	@Override
	public String execute() throws Exception {
		Student s=new Student();
		System.out.println("按照性别查询数据库:"+sex);
		//获取ActionContext
		ActionContext actionContext = ActionContext.getContext();
		StudentDao dao=new StudentDao();
		Map<String, Object> session = ActionContext.getContext().getSession();//struts2的内部命令
		 
		listas=dao.selectSex(sex);
		Iterator<Student> it=listas.iterator();
		pList=new ArrayList<Names>();
		while(it.hasNext()){
			int i=1;i++;
			Student st=it.next();
			pList.add(new Names(i,st.getName())); 
		}
		actionContext.put("pList", pList);
		session.put("listas", listas);
		return SUCCESS;
	}
	public static void main(String[] args) {
		SexAction se=new SexAction();
		 System.out.println(se.sex);
	}
}

StudentAction.java

package com.action;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.catalina.connector.Request;
import org.apache.struts2.ServletActionContext;

import com.dao.StudentDao;
import com.domain.Names;
import com.domain.Student;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class StudentAction extends ActionSupport{
	 private String sex;
     public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	private static List<Student> listas;
     private String grade;
     private List<Names> pList;
	public List<Names> getpList() {
		return pList;
	}
	public void setpList(List<Names> pList) {
		this.pList = pList;
	}
	public String getGrade() {
		return grade;
	}
	public void setGrade(String grade) {
		this.grade = grade;
	}
	public List<Student> getListas() {
		return listas;
	}
	public void setListas(List<Student> listas) {
		this.listas = listas;
	}
	//获取ActionContext 
	ActionContext actionContext = ActionContext.getContext();
	 
	Map<String, Object> session = ActionContext.getContext().getSession();//struts2的内部命令
	
	//全部查询
	@SuppressWarnings("unused")
	public String ALLfind() throws Exception {
		System.out.println("Action中数据库操作ALL");
		StudentDao dao=new StudentDao();
		listas=dao.selectAll();
		session.put("listas", listas);
	   return SUCCESS;
	}
	
//	//按照性别查询
//	public String SexAction() throws Exception {
//		Student s=new Student();
//		System.out.println("按照性别查询数据库:"+sex);
//		//获取ActionContext 
//		StudentDao dao=new StudentDao();
//		listas=dao.selectSex(sex);
//		session.put("listas", listas);
//		return "sex";
//	}
	
	
	//按班查询
	public String whichgrade(){
		System.out.println("Action按班级查询:"+grade);
		//grade=1;grade+="班";
		StudentDao dao=new StudentDao();
		listas=dao.selectGrade(grade);
		Iterator<Student> it=listas.iterator();
		pList=new ArrayList<Names>();
		while(it.hasNext()){
			int i=1;i++;
			Student st=it.next();
			pList.add(new Names(i,st.getName())); 
		}
		actionContext.put("pList", pList);
		session.put("listas",listas);
		return "grade";
	}
	
	public static void main(String[] args) {
		StudentDao dao=new StudentDao();
		listas=dao.selectGrade("ALL");
	}
		
 
}

com.dao

DBHand.java

package com.dao;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBHand {
	 
	public static Connection getConnection() throws Exception{
	    //注册驱动//?characterEncoding=utf-8
		Class.forName("com.mysql.jdbc.Driver").newInstance();
		Connection conn =
		DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123456");
		if (!conn.isClosed()) {
			return conn;
		}
		return null;
		
	}
	public static void closeConnection(Connection conn) throws Exception{
		if (conn!=null&&!conn.isClosed()) {
			conn.close();
			System.out.println("数据库已经被关闭");
		}
	}
	
}

GradeDao.java

package com.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.domain.Grade;

public class GradeDao {
	private Connection conn;//数据库连接
	private PreparedStatement ps;//执行数据库
	private ResultSet rs;//执行结果  
	public GradeDao(){
		try {
			conn=DBHand.getConnection();
		} catch (Exception e) {
			 e.printStackTrace();
			 System.out.println("grade数据库连接异常");
		}
	}
	//查询班级
	public List<Grade> selectGrade(String  m){
		List<Grade> listg=new ArrayList<Grade>();
		String sql;
		int i=0;
		if(m.equals("a")){
			  sql="select rankg,grade,sum,average from test5979_grade order by sum ASC";	
		}else{
			 sql="select rankg,grade,sum,average from test5979_grade order by average ASC";	
		}
		 
	     try {
			ps=conn.prepareStatement(sql);//执行SQL语句
			rs=ps.executeQuery();//返回查询结果
			while(rs.next()){
				Grade g=new Grade();
				i++;
				g.setRankg(i);
				g.setGrade(rs.getString(2));
				g.setSum(rs.getString(3));
				g.setAverage(rs.getString(4));
				
				listg.add(g);
				System.out.println("GradeDao操作:"+g.getGrade());
			}
			System.out.println("查询数据库成功");
			rs.close();
			ps.close();
			
		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("查询失败");
		}
		return listg;
	}
	public static void main(String[] args) {
		GradeDao g=new GradeDao();
		System.out.println("数据库操作");
		g.selectGrade("a");
	}
}

StudentDao.java

 package com.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.domain.Student;

public class StudentDao {
	private Connection conn;//数据库连接
	private PreparedStatement ps;//执行数据库
	private ResultSet rs;//执行结果
	public StudentDao() {
		try {
			conn=DBHand.getConnection();
		} catch (Exception e) {
			 
			e.printStackTrace();
		}
	}
	
	//数据全部查询操作
	public List<Student> selectAll(){
		List<Student> lists=new ArrayList<Student>();
		String sql="select id,name,sex,math,chinese,score from test5979";
		try {
			ps=conn.prepareStatement(sql);//执行sql语句
			rs=ps.executeQuery();//查得结果
			while(rs.next()){
				Student s=new Student();
				s.setId(rs.getInt(1));
				s.setName(rs.getString(2));
				s.setSex(rs.getString(3));
				s.setMath(rs.getString(4));
				s.setChinese(rs.getString(5));
				s.setScore(rs.getString(6));
				lists.add(s);
				//后台输出验证连通性
				System.out.println("后台值班的人:"+s.getName());
			}
			System.out.println("查询数据库成功");
			rs.close();
			ps.close();
			
		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("查询失败");
		}
		return lists;
	}
	//性别查询
	public List<Student> selectSex(String sex){
		List<Student> listsx=new ArrayList<Student>();
		String sql="select id,name,sex,math,chinese,score from test5979 where sex=?";
		try {
			ps=conn.prepareStatement(sql);//执行sql语句
			ps.setString(1, sex);
			rs=ps.executeQuery();//查得结果
			while(rs.next()){
				Student s=new Student();
				s.setId(rs.getInt(1));
				s.setName(rs.getString(2));
				s.setSex(rs.getString(3));
				s.setMath(rs.getString(4));
				s.setChinese(rs.getString(5));
				s.setScore(rs.getString(6));
				listsx.add(s);
				//后台输出验证连通性
				System.out.println("姓名:"+s.getName()+",性别:"+s.getSex());
			}
			System.out.println("按性别查询");
			rs.close();
			ps.close();
			
		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("查询失败");
		}
		
	  return listsx;	
	}	
	//按班级查询
	public List<Student> selectGrade(String grade){
		List<Student> listsg=new ArrayList<Student>();
		String sql;
		if(grade.equals("ALL")){
		  return selectAll();  
		}else{
		   sql="select id,name,sex,math,chinese,score,grade from test5979 where grade=?";
		}
		try {
			ps=conn.prepareStatement(sql);//执行sql语句
			ps.setString(1, grade);
			rs=ps.executeQuery();//查得结果
			while(rs.next()){
				Student s=new Student();
				s.setId(rs.getInt(1));
				s.setName(rs.getString(2));
				s.setSex(rs.getString(3));
				s.setMath(rs.getString(4));
				s.setChinese(rs.getString(5));
				s.setScore(rs.getString(6));
				listsg.add(s);
				s.setGrade(rs.getString(7));
				//后台输出验证连通性
				System.out.println("姓名:"+s.getName()+",性别:"+s.getSex()+",班级:"+s.getGrade());
			}
			System.out.println("按班级查询");
			rs.close();
			ps.close();
			
		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("查询失败");
		}
		
	  return listsg;	
	}	
	
	public static void main(String[] args) {
		StudentDao sDao=new StudentDao();
		//sDao.selectAll();
		//sDao.selectSex("女");
		sDao.selectGrade("ALL");
	}
}

com.domain

Grade.java

package com.domain;

public class Grade {
    public int rankg;
    public String grade;
    public String sum;
    public String average;
    public String getSum() {
		return sum;
	}
	public void setSum(String sum) {
		this.sum = sum;
	}
	public String getAverage() {
		return average;
	}
	public void setAverage(String average) {
		this.average = average;
	}
	 
	public int getRankg() {
		return rankg;
	}
	public void setRankg(int rankg) {
		this.rankg = rankg;
	}
	public String getGrade() {
		return grade;
	}
	public void setGrade(String grade) {
		this.grade = grade;
	}
    
}

Names.java

package com.domain;

public class Names {
    private int id;
    private String name;
    
    public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Names(int id, String name) {
		super();
		this.id = id;
		this.name = name;
	}
	 
    
}

Student.java

package com.domain;

import java.io.Serializable;

public class Student implements Serializable{
      public int id;
      public String name;
      public String sex;
      public String math;
      public String chinese;
      public String score;
      public String grade;
      public String all;
	 
	public int getId() {
		return id;
	}
	public String getAll() {
		return all;
	}
	public void setAll(String all) {
		this.all = all;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getMath() {
		return math;
	}
	public void setMath(String math) {
		this.math = math;
	}
	public String getChinese() {
		return chinese;
	}
	public void setChinese(String chinese) {
		this.chinese = chinese;
	}
	public String getScore() {
		return score;
	}
	public void setScore(String score) {
		this.score = score;
	}
	public String getGrade() {
		return grade;
	}
	public void setGrade(String grade) {
		this.grade = grade;
	}
	
	public Student() {
		super();
	}
	public Student(int id, String name) {
		super();
		this.id = id;
		this.name = name;
	}
	 
	
      
}

猜你喜欢

转载自blog.csdn.net/qq_41893274/article/details/86479289