使用strut2连接后台 从后台获取数据 展示所有数据

注意点:
重定向 增删改
转发 查

所需的部分重要代码

struts-sy.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
	"http://struts.apache.org/dtds/struts-2.5.dtd">
	<!-- 模块对应的xml -->
<struts>
	<!-- 虚拟包 在tomcat中开辟出来的 找配置的子控制器-->
	<!-- 
		name : 给包取名,用于包继承
		namespace : 用于jsp页面调用
	 -->
	<package name="sy" extends="base" namespace="/sy">
		<!-- struts crud -->
		<action name="clazzAction" class="com.zking.web.ClazzAction"></action>
		
		<action name="studentAction_*" class="com.zking.web.StudentAction" method="{1}">
			<!-- type不填的话是表示转发  type有四个值主要使用的是forward转发 redirect重定向  -->
			<result name="success" type="redirect">/sy/studentAction_list.action</result>
			<result name="list">/listStudent.jsp</result>
			<result name="add">/addStudent.jsp</result>
			<result name="edit">/editStudent.jsp</result>
		</action>
	</package>
</struts>

jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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>Insert title here</title>
<%@ taglib uri="/struts-tags" prefix="s"%>
<%@ taglib uri="/zking" prefix="z"%>
</head>
<body>
	<h2>学生信息展示</h2>
	<s:action name="clazzAction" namespace="/sy" var="clazzList"></s:action>
	<s:form method="post" action="studentAction_list">
		<s:textfield label="name" name="sname"/>
		<s:select label="班级" list="#clazzList.result" name="cid" listKey="cid" listValue="cname" headerKey="" headerValue="--请选择--"></s:select>
		<s:submit value="提交"/>
	</s:form>
	
	<s:url action="studentAction_toAdd" namespace="/sy" var="addUrl"/>
	<s:a href="%{#addUrl}">新增</s:a>
	<table border="1" width="100%">
		<tr>
			<td>序号</td>
			<td>学号</td>
			<td>姓名</td>
			<td>拼音</td>
			<td>性别</td>
			<td>标记</td>
			<td>班级</td>
			<td>操作</td>
		</tr>
		<s:iterator var="s" value="result">
		<tr>
			<td>序号</td>
			<td><s:property value="#s.sid"/></td>
			<td><s:property value="#s.sname"/></td>
			<td><s:property value="#s.spin"/></td>
			<td><s:property value="#s.sex"/></td>
			<td><s:property value="#s.mark"/></td>
			<td><s:property value="#s.cname"/></td>
			<td>
				<s:url action="studentAction_toEdit" namespace="/sy" var="editUrl">
					<s:param name="sid" value="#s.sid"></s:param>
				</s:url>
				<s:a href="%{#editUrl}">修改</s:a>
				<s:url action="studentAction_delete" namespace="/sy" var="delUrl">
					<s:param name="sid" value="#s.sid"></s:param>
				</s:url>
				<s:a href="%{#delUrl}">删除</s:a>
			</td>
		</tr>
		</s:iterator>
	</table>
	
	<s:debug/>
	
</body>
</html>

baseAction
将每个action里面都可能出现的数据抽取出来放在一个类里面


package com.zking.web;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;

/**
 * 每一个开发的子控制器要用到属性都定义在通用的action中
 * 
 * @author Admin
 *
 */
public class BaseAction implements ServletResponseAware, ServletRequestAware {

	/**
	 * 为了传值使用
	 */
	protected HttpServletRequest request;
	protected HttpServletResponse response;
	protected HttpSession session;
	protected ServletContext application;
	
	/**
	 * 为了配置跳转页面所用
	 */
	protected final static String SUCCESS = "success";
	protected final static String FAIL = "fail";
	protected final static String LIST = "list";
	protected final static String ADD = "add";
	protected final static String EDIT = "edit";
	protected final static String DETAIL = "detail";
	
	/**
	 * 具体传值字段	后端向jsp页面传值所用字段
	 */
	protected Object result;
	protected Object msg;
	protected int code;
	
	

	public Object getResult() {
		return result;
	}

	public Object getMsg() {
		return msg;
	}

	public int getCode() {
		return code;
	}

	public void setServletRequest(HttpServletRequest arg0) {
		this.request = arg0;
		this.session = arg0.getSession();
		this.application = arg0.getServletContext();
	}

	public void setServletResponse(HttpServletResponse arg0) {
		this.response = arg0;
	}
}

studentAction 调用后台方法


package com.zking.web;

import java.sql.SQLException;

import com.opensymphony.xwork2.ModelDriven;
import com.zking.dao.StudentDao;
import com.zking.entity.Student;
import com.zking.util.PageBean;

public class StudentAction extends BaseAction implements ModelDriven<Student>{

	private StudentDao studentDao = new StudentDao();
	private Student student = new Student();
	private PageBean pageBean = new PageBean();
	
	public String list() {
		try {
			this.result = studentDao.list(student, pageBean);
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return LIST;
	}
	
	public Student getModel() {
		return student;
	}
}



效果图

使用strut2连接后台 从后台获取数据 展示所有数据