[JavaWeb基础] 018.Struts2 Action通配符使用
Struts2中有一个很牛逼的action通配符,可以用来简化action配置,以我们将要讲解的案例来说,如果我们要对一个学生信息进行增加,删除,修改,那么按照原来的做法,我们需要写3个Action来配置:student_add,student_update,student_del。那么我们容易发现它们可以提取共同的前缀student_,这样我们就可以配置下通配符,把后面的东西弄成变量,那么我们就只要配置一个action就可以了。
1.首先编写我们的Action类
package com.babybus.sdteam.action; import java.sql.SQLException;
import java.util.List; import com.babybus.sdteam.dao.StudentHibernateDao;
import com.babybus.sdteam.vo.Student;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport; public class ManageStudentAction extends ActionSupport implements Action { private static final long serialVersionUID = 1L;
private String studentname;
private Integer age;
private String classname;
private Integer userid;
private String username;
private List<Student> resultList; public String getStudentname() {
return studentname;
} public void setStudentname(String studentname) {
this.studentname = studentname;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} public String getClassname() {
return classname;
} public void setClassname(String classname) {
this.classname = classname;
} public Integer getUserid() {
return userid;
} public void setUserid(Integer userid) {
this.userid = userid;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public List<Student> getResultList() {
return resultList;
} public void setResultList(List<Student> resultList) {
this.resultList = resultList;
} /**
* 获取条件
* @param method
* @return
*/
private Student getCondition(String method)
{
Student result = new Student();
if(!"del".equals(method))
{
result.setStudentname(this.studentname);
result.setAge(this.age);
result.setClassname(this.classname);
} if("update".equals(method))
{
result.setId(this.userid);
} return result;
} /**
* 增加信息
* @throws SQLException
*/
public String studentadd() throws SQLException
{
Student condition = getCondition("add");
StudentHibernateDao dao = new StudentHibernateDao();
dao.insertStudent(condition); // 查询结果集合
resultList = dao.queryStudent(null);
return SUCCESS;
} /**
* 修改信息
* @throws SQLException
*/
public String studentupdate() throws SQLException
{
Student condition = getCondition("update");
StudentHibernateDao dao = new StudentHibernateDao();
dao.updateStudent(condition); // 查询结果集合
resultList = dao.queryStudent(null);
return SUCCESS;
} /**
* 删除信息
* @throws SQLException
*/
public String studentdel() throws SQLException
{
StudentHibernateDao dao = new StudentHibernateDao();
dao.deleteStudent(this.userid); // 查询结果集合
resultList = dao.queryStudent(null);
return SUCCESS;
}
}
2.配置我们的struts.xml
<action name="student_*" class="com.babybus.sdteam.action.ManageStudentAction" method="student{1}">
<result name="success">/UserList.jsp</result>
</action>
3.前端调用
<form action="student_add.action" method="post" >
<form action="student_update.action" method="post" >
<a href="student_del.action?userid=${student.id}" onclick="return confirm('确定要删除么?')" }>删除</a></td>
4.这样我们就可以用通配符节省很多action的配置了

本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士)
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4808043.html
[JavaWeb基础] 018.Struts2 Action通配符使用的更多相关文章
- struts2 action通配符
首先,看一个struts2的配置文件: <package name="actions" extends="struts-default" namespac ...
- Struts2 - action通配符映射
一个 Web 应用可能有成百上千个 action 声明. 可以利用 struts 提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系 通配符映射规则 – 若找到多个匹配, 没有通 ...
- [JavaWeb基础] 019.Struts2 MVC架构之ModelDriven
用过struts1的人接触struts2的时候,通常会产生一个疑惑,明明struts1已经把action的form分开了,为什么struts2确把模型放在action中定义.其实这个方式只是想让act ...
- [JavaWeb基础] 017.Struts2 和 ajax交互简介
在网页开发中,我们为了只对网页的某块内容进行实时更新,而不对其他不需要更新的内容进行刷新,从而提高响应速度和节省流量,我们采用了页面的异步刷新技术Ajax,那么我们的Struts2框架在这一方面是如何 ...
- [JavaWeb基础] 016.Struts2 国际化配置
如果一个软件想要让其受众是全球或者是几个国家的人,那么这个软件就需要支持多种语言,那么我们就需要软件的国际化去对一些文字信息进行国际化处理.web也一样,当外国人打开我们的网站,要是看到满屏幕的中文, ...
- [JavaWeb基础] 015.Struts2 表单验证框架
在web开发的过程中,我们经常要用到一些填写表单的操作,我们一般都要在提交表单信息的时候对表单的内容进行验证,struts2给我们提供了简单的实现接口,让我们可以很容易的对表单进行验证.下面讲解下最传 ...
- [JavaWeb基础] 014.Struts2 标签库学习
在Struts1和Struts2中都有很多很方便使用的标签库,使用它可以让我们的页面代码更加的简洁,易懂,规范.标签的形式就跟html的标签形式一样.上面的篇章中我们也讲解了自定义标签那么在如何使用标 ...
- [JavaWeb基础] 013.Struts2 自定义类型转换器
很多时候,我们在做web开发的时候经常要用到时间的转换器,Struts2给我们提供了一种类型转换器的接口.下面我们讲讲怎么实现吧. 1.首先我们要定义一个类型转换的类,继承自com.babybus.s ...
- [JavaWeb基础] 011.Struts2 配置拦截器
在网页开发中有一个很重要的东西就是拦截器,就是在请求接收到的时候先到拦截器中进行一些逻辑处理,例如会话是否过期的验证等.在Struts2中我们可以编写一个拦截器的类,然后在struts.xml中简单配 ...
随机推荐
- POJ 1287 Networking 垃圾题目
Networking Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 22362 Accepted: 11372 Desc ...
- 获取Wi-Fi的SSID
前几天做项目的时候,碰到一个问题,获取wifi的SSID,其实就是获取Wi-Fi的名字 iOS12以前 在iOS13之前获取wifi的SSID很简单,苹果提供了接口CNCopyCurrentNetwo ...
- spark系列-7、spark调优
官网说明:http://spark.apache.org/docs/2.1.1/tuning.html#data-serialization 一.JVM调优 1.1.Java虚拟机垃圾回收调优的背景 ...
- POJ3734(矩阵快速幂)
\(假设现在到第i个积木\) \(红绿恰都是偶数a种方案,恰都是奇数为b种方案,一奇一偶为c种方案\) \(由此考虑i+1个积木的情况\) Ⅰ.一奇一偶的方案 \(如果第i层恰是奇数的情况,那么本次只 ...
- Lasso回归
Lasso 是一个线性模型,它给出的模型具有稀疏的系数(sparse coefficients).它在一些场景中是很有用的,因为它倾向于使用较少参数的情况,能够有效减少给定解决方案所依赖变量的个数.因 ...
- Coursera课程笔记----Write Professional Emails in English----Week 1
Get to Know Basic Email Writing Structures(Week 1) Introduction to Course Email and Editing Basics S ...
- Mysql常用sql语句(九)- like 模糊查询
测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...
- Mysql 常用函数(12)- left 函数
Mysql常用函数的汇总,可看下面系列文章 https://www.cnblogs.com/poloyy/category/1765164.html left 的作用 返回字符串 str 中最左边的 ...
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
堆和栈的区别 一个由C/C++编译的程序占用的内存分为以下几个部分1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈.2.堆区(heap ...
- HttpServletRequest与HttpServletResponse
一. 简介:每当客户端给Web服务器发送一个http请求,web服务器就会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和respons ...