StudentAction 控制器
package cn.action; import java.util.ArrayList; import java.util.List; import cn.biz.StudentBiz; import cn.biz.impl.StudentBizImpl; import cn.entity.Classes; import cn.entity.Student; import com.opensymphony.xwork2.ActionSupport; /** * 学生 控制器 * */ @SuppressWarnings("serial") public class StudentAction extends ActionSupport { private StudentBiz studentBiz = new StudentBizImpl(); private List<Student> students = new ArrayList<Student>(); private Student student = new Student(); private Integer id; private List<Classes> classesList = new ArrayList<Classes>(); private Integer classId; /** * 显示学生列表 * @return */ public String list(){ students = studentBiz.getAll(); return SUCCESS; } /** * 根据 id 查询学生信息 * @return */ public String selected(){ student = studentBiz.getStudentById(id); classesList = studentBiz.getClassesList(); return SUCCESS; } /** * 修改学生信息 * @return */ public String updated(){ Classes classes = new Classes(); classes = studentBiz.getClassesById(classId); student.setClasses(classes); if(studentBiz.update(student) > 0){ students = studentBiz.getAll(); return SUCCESS; }else{ return INPUT; } } public StudentBiz getStudentBiz() { return studentBiz; } public void setStudentBiz(StudentBiz studentBiz) { this.studentBiz = studentBiz; } public List<Student> getStudents() { return students; } public void setStudents(List<Student> students) { this.students = students; } public Student getStudent() { return student; } public void setStudent(Student student) { this.student = student; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public List<Classes> getClassesList() { return classesList; } public void setClassesList(List<Classes> classesList) { this.classesList = classesList; } public Integer getClassId() { return classId; } public void setClassId(Integer classId) { this.classId = classId; } }
struts.xml 配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "struts-2.1.dtd"> <struts> <constant name="struts.ui.theme" value="simple"></constant> <package name="default" namespace="/" extends="struts-default"> <!-- 显示学生列表 --> <action name="list" class="cn.action.StudentAction" method="list"> <result name="success">/index.jsp</result> </action> <!-- 根据id查询学生信息 --> <action name="selected" class="cn.action.StudentAction" method="selected"> <result name="success">/update.jsp</result> </action> <!-- 修改学生信息 --> <action name="updated" class="cn.action.StudentAction" method="updated"> <result name="success">/index.jsp</result> <result name="input">/update.jsp</result> </action> </package> </struts>
index.jsp 页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> *{ margin:0; padding:0; } body{ font-family:"宋体"; color:#333; font-size:14px; background:#fff;} a{ color:#069; text-decoration:underline;} a:hover{ color:#f60; text-decoration:underline;} h3{ text-align:center; line-height:40px;} table{ margin:0 auto; line-height:23px;} table tr th{ background:#B8860B;} table tr td{ padding:0 8px;} table .tdBg td{ background:#999} </style> <title>学生信息列表</title> </head> <body> <h3>学生信息列表</h3> <table border="1"> <tr> <th>编号</th> <th>姓名</th> <th>性别</th> <th>生日</th> <th>电话</th> <th>E-mail</th> <th>班级</th> </tr> <s:iterator value="students" status="st"> <tr <s:if test="#st.even">class="tdBg"</s:if> ><!-- 隔行变色 --> <td><s:a href="selected.action?id=%{id}"><s:property value="id"/></s:a></td> <td><s:property value="sname"/></td> <td><s:property value="gender"/></td> <td><s:date name="birthday" format="yyyy-MM-dd" /></td> <td><s:property value="telephone"/></td> <td><s:property value="email"/></td> <td><s:property value="classes.cname"/></td> </tr> </s:iterator> </table> </body> </html>
效果图:
update.jsp 页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> *{ margin:0; padding:0; } body{ font-family:"宋体"; color:#333; font-size:14px; background:#fff;} h3{ text-align:center; line-height:40px;} table{ margin:0 auto; line-height:23px;} table input[type="text"]{ border:1px solid #333; height:18px; line-height:18px; padding-left:6px;} table select{ border:1px solid #333; } </style> <script type="text/javascript"> //根据 id 获取元素 function $(id) { return document.getElementById(id); } //开机加载 window.onload = function() { //为表单注入 onsubmit 事件 document.updatedForm.onsubmit = function() { return check(); }; }; //提交表单前验证 function check() { var sname = $("sname"); var birthday = $("birthday"); var telephone = $("telephone"); var email = $("email"); if ("" == sname.value || "" == birthday.value|| "" == telephone.value|| "" == email.value) { alert("姓名,生日,电话和E-mail不能为空"); return false; } var regEmail = /^\w+@\w+(\.[a-zA-Z]{2,3}){1,2}$/; if(regEmail.test(email.value)==false){ alert("电子邮箱格式不正确,请重新输入"); return false; } return true; } </script> <title>修改学员信息</title> </head> <body> <h3>修改学员信息</h3> <s:form action="updated" method="post" name="updatedForm"> <table> <tr> <td><input type="hidden" name="student.id" value="<s:property value='student.id'/>"/>姓名</td> <td><input type="text" name="student.sname" id="sname" value="<s:property value='student.sname'/>" /></td> </tr> <tr> <td>性别</td> <td> <s:if test='student.gender =="男"'> <input type="radio" value="男" name="student.gender" checked="checked" />男 <input type="radio" value="女" name="student.gender" />女 </s:if> <s:else> <input type="radio" value="男" name="student.gender" />男 <input type="radio" value="女" name="student.gender" checked="checked" />女 </s:else> </td> </tr> <tr> <td>生日</td> <td><input type="text" name="student.birthday" id="birthday" value="<s:date name='student.birthday' format='yyyy-MM-dd' />" /></td> </tr> <tr> <td>电话</td> <td><input type="text" name="student.telephone" id="telephone" value="<s:property value='student.telephone'/>" /></td> </tr> <tr> <td>E-mail</td> <td><input type="text" name="student.email" id="email" value="<s:property value='student.email'/>" /></td> </tr> <tr> <td>班级</td> <td> <select name="classId"> <s:iterator value="classesList"> <s:if test="student.classes.id == id"> <option value="<s:property value='id'/>" selected="selected"><s:property value="cname"/></option> </s:if> <s:else> <option value="<s:property value='id'/>"><s:property value="cname"/></option> </s:else> </s:iterator> </select> </td> </tr> <tr><td colspan="2" style="text-align:center"><input type="submit" value="保存" /> <input type="reset" value="重置" /></td></tr> </table> </s:form> </body> </html>
效果图:
相关推荐
4. **JSP访问Struts2 Action**:JSP页面通过特定的URL模式访问Action,包括namespace、action name和方法名。 **Spring3.0配置** 1. **导入Spring3.0 Jar包**:在项目中引入Spring库,以实现依赖注入和业务逻辑管理...
在S2SH框架中,JSP通常作为视图层,接收并展示由Struts2 Action处理后的数据。JSP页面中可以包含Java代码、EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)标签库,使得页面更易读和维护...
在项目中,你将接触到Action类的编写,Struts.xml配置文件,以及利用Interceptor拦截器处理请求和响应。同时,Struts2还支持各种结果类型和模板技术,如JSP、FreeMarker等。 3. **整合Hibernate和Struts2**:在实际...
以及 Struts 2.0 的 `struts.xml`,用于配置 Action 映射和拦截器链。 2. **Action 类**:这些类实现了 Struts 2.0 的 `Action` 接口或继承自 `ActionSupport` 类,包含了业务逻辑处理方法。这些方法通常对应于前端...
以下是S2S3H3(Struts2.3.4+Spring3.0+Hibernate3.3)的详细配置步骤。 1. **环境准备** - IDE:MyEclipse8.5 - JDK:1.7 - 应用服务器:Tomcat6.0 - 框架版本:Struts2.3.4,Spring3.0,Hibernate3.3 - ...
2. `struts`目录:包含Struts的配置文件,如`struts-config.xml`,可能还有Action的配置。 3. `hibernate`目录:包含Hibernate的配置文件,如`hibernate.cfg.xml`,以及实体类的映射文件。 4. `lib`目录:存放所有...
1. **Struts 2框架**:理解Struts 2的基本架构,包括Action类、配置文件(struts.xml)、拦截器、结果类型等核心概念。 2. **MVC模式**:学习如何在Struts 2中实现模型、视图和控制器之间的协作,以及如何通过Action来...
XML配置文件(如struts.xml)用于定义Action类、结果页面和拦截器。Struts2的核心是Action类,它是业务逻辑的入口点。通过ActionForm或者ModelDriven接口,Struts2可以从请求中获取数据,并调用服务层方法处理业务。...
- 在struts.xml文件中定义Action和相关配置,然后根据Action和结果类型编写对应的业务逻辑和视图。 理解并熟练运用这些知识点,开发者可以高效地构建出健壮且易于维护的Java web应用。在实际项目中,还需要关注...
在整合过程中,我们需要在Struts2的配置文件(struts.xml)中定义Action及其对应的处理方法,并设置结果视图。 MyBatis则是一个轻量级的持久层框架,它简化了SQL操作,通过XML或注解方式配置和映射原生信息,将接口...
要使用Spring,需要先导入Spring的JAR包,并在`struts.xml`中设置`struts.objectFactory`为`spring`,这使得Struts2能利用Spring的IoC容器来创建和管理Action对象。同时,开发者还需要在Spring的配置文件(如`...
4. **配置Struts2**:创建struts.xml配置文件,定义Action类、结果页面和全局拦截器。Struts2会通过Spring插件与Spring容器进行交互,自动实例化Action类。 5. **配置Hibernate**:在hibernate.cfg.xml文件中配置...
这个名为"SSH.rar_s2sh_ssh+mysql_struts2_hibernate_struts2_mys"的压缩包文件,可能是关于如何整合这些技术并配合MySQL数据库进行项目开发的文档资料。 首先,我们来看Struts2,这是一个基于MVC设计模式的Java ...
2. **创建`struts.xml`文件**:该文件是Struts 2的核心配置文件,用于定义各种action及它们的处理结果。下面是一个简单的示例: ```xml <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts ...
在实际开发中,这三者之间的协作流程大致如下:用户发起请求,被Struts2的前端控制器捕获,然后根据`struts.xml`配置转发到相应的Action;Action中调用Service层的方法,Service层通过DAO层与数据库交互,完成业务...
4. **整合Struts2和Spring**:使用Spring插件struts2-spring-plugin,配置struts-plugin.xml,使Struts2能够识别Spring管理的Action。 5. **整合Hibernate和Spring**:通过Spring的LocalSessionFactoryBean创建...
配置方面,Struts2.x使用XML配置文件(struts.xml或struts-default.xml)来定义Action、结果类型、拦截器等,同时支持注解方式配置,提高开发效率。此外,Struts2.x还支持动态方法调用,使得Action方法的调用更加...
`WebRoot`是Web应用的根目录,包含静态资源(如HTML、CSS、JavaScript文件)、Web应用的配置文件(如Struts2的struts.xml、Spring的applicationContext.xml)、JSP页面等。 `.myeclipse`目录可能包含MyEclipse工作...
主要包括`struts.xml`和`struts.properties`等。 ##### 1. 解决断网环境下配置文件提示问题 - **问题描述**:在断网环境下,IDEA中的`struts.xml`文件会出现红色叹号,无法获取到DTD验证信息,导致无法获得提示。 -...