使用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;
}
}
效果图