[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中简单配 ...
随机推荐
- CodeForces - 262B
Roma works in a company that sells TVs. Now he has to prepare a report for the last year. Roma has g ...
- 一个简单的wed服务器SHTTPD(6)———— SHTTPD错误处理的实现
//start from the very beginning,and to create greatness //@author: Chuangwei Lin //@E-mail:979951191 ...
- Scrapy爬虫框架基本使用
scrapyhub上有些视频简单介绍scrapy如何学习的(貌似要FQ):https://helpdesk.scrapinghub.com/support/solutions/articles/220 ...
- Java——类的访问修饰符
1.java中外部类的访问修饰符有如下四种: public,默认,abstract,final // public,默认,abstract,final. public class Test1 {} c ...
- 将csv文件导入sql数据库
有一个csv文件需要导入到Sql数据库中,其格式为 “adb”,"dds","sdf" “adb”,"dds","sdf" ...
- C# 基础至集合-数组、List<T>、ArrayList、LinkedList、HashMap的一些区别
1:数组 ]; //赋值 strs[] = "; strs[] = "; //修改 strs[] = "burg"; //删除 没法删除 除非转化为可变数组li ...
- fork...join的用法
如果希望在仿真的某一时刻同时启动多个任务,可以使用fork....join语句.例如,在仿真开始的 100 ns 后,希望同时启动发送和接收任务,而不是发送完毕后再进行接收,如下所示: initial ...
- LabVIEW动态添加控件
综述: 事例1: 未执行: 执行后:
- ql的python学习之路-day9
前言:本节主要学习装饰器 一.装饰器 定义:本质上是个函数,用来装饰其他函数:(就是为其他函数添加附加功能) 原则:1.不能修改被装饰的函数的源代码 2.不能修改被装饰的函数的调用方式 以上两点可以总 ...
- 【雕爷学编程】Arduino动手做(63)---TCS3200D颜色识别传感器
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...