当一个Action处理类中处理多个业务时,action的配置 文件将会急剧增加,导致配置文件很臃肿的问题。

struts2提供了两种方案来解决这个问题。一种是动态方法调用,另一种是使用通配符来配置Action。

这里只讲使用通配符的方式来配置Action.

代码如下:

UserAction

public class UserAction {
private Integer id;
private String name;
private String sex;
private int age;
private String phone;
private UserDao userDao = new UserDaoImpl();
//这个List必须为处理类的属性 才可以在列表页面中获取数据 如果只是在方法的内部声明将无法获取
//并且提供其get/set方法
private List<User> list;
private User user;
//添加
public String save(){
User user = new User(name,age,sex,phone);
if(userDao.save(user)>0){
return Action.SUCCESS;
}
return Action.ERROR;
}
//修改
public String update(){
User user = new User(id,name,age,sex,phone);
if(userDao.update(user)>0){
return Action.SUCCESS;
}
return Action.ERROR;
}
//查询
public String list(){
list = userDao.findAll();
//return Action.SUCCESS;
return "list";
}
//删除
public String delete(){
if(userDao.delete(id)>0){
return Action.SUCCESS;
}
return Action.ERROR;
}
//获取指定对象
public String toUpdate(){
user = userDao.findById(id);
//return Action.SUCCESS;
return "update";
} public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public List<User> getList() {
return list;
}
public void setList(List<User> list) {
this.list = list;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}

struts.xml

     <!--
*表示匹配所有请求的action名 *表示匹配任意多个字符
{1}表示匹配第一个*所代表的内容
如:*User 可以匹配 addUser,deleteUser,saveUser,findUser,updateUser,*表示User前的字符
*_* 可以匹配 add_user这样的请求
-->
<action name="*" class="cn.sxt.action.UserAction" method="{1}">
<result type="redirectAction">list</result>
<result name="list">/list.jsp</result>
<result name="update">/update.jsp</result>
<result name="error">/error.jsp</result>
</action>

注意:使用通配符请求action的方式和以前一样

java之struts2的action优化配置的更多相关文章

  1. Struts2(五)Action二配置

    一.method参数 action package com.pb.web.action; public class HourseAction { public String add(){ System ...

  2. java之struts2的action的创建方式

    首先action是用来处理请求的, 这里struts2中的action的3中创建方式. 1.无侵入性的创建方式. 无侵入性:使用第三方的框架,不直接继承或实现第三方提供的类或者接口就说是无侵入性的. ...

  3. struts2 之 Action的优化配置

    总结:struts2种action的配置文件会随着业务的增加而增加,导致配置文件膨胀.struts2中提供了三种方案来解决这个问题: 1. 动态方法调用来实现. 2. 通配符配置来解决. 3. 使用注 ...

  4. Struts2之Action基础与配置

    Action基础 Action是什么 在Struts2中,一个Action类代表一次请求或调用,每个请求的动作都对应于一个相应的Action类,一个Action类是一个独立的工作单元.也就是,用户的每 ...

  5. struts2对action中的方法进行输入校验---xml配置方式(3)

    上面两篇文章已经介绍了通过编码java代码的方式实现action方法校验,这里我们介绍第二种方式:xml配置文件 首先我们来看一个样例: ValidateAction.java: package co ...

  6. Struts2学习第一天--Struts2的概述、Struts2的入门、Struts2常见的配置、Struts2的Action的编写

    action的name要与访问路径对应.hello.action. 加到tomcat启动 访问:http://localhost:8080/struts2-1/demo1/demo1.jsp 改为su ...

  7. Struts2(五.用户注册的实现及整合Action的配置方法)

    一.用户注册功能 register.jsp页面 若是jquery ajax方式提交给action,还要回到jquery,控制权在jquery若是表单方式提交给action,控制权交给action &l ...

  8. java之struts2的配置讲解(2)

    在 java之struts框架入门教程 基础上,进行下列操作 1.结构对比 原来的项目结构图 现在的结构图 即从结构上可以看出,在HelloStruts项目中增加了config 文件夹(Source ...

  9. struts2 ,web.xml中配置为/*.action,运行报错Invalid <url-pattern> /*.action in filter mapp

    首先,修改成: <filter-mapping>  <filter-name>struts2</filter-name>  <url-pattern>/ ...

随机推荐

  1. SpringMVC自定义类型转换器

    SpringMVC 自定义类型转换器  我们在使用SpringMVC时,常常需要把表单中的参数映射到我们对象的属性中,我们可以在默认的spring-servlet.xml加上如下的配置即可做到普通数据 ...

  2. 简书 markdown 代码高亮标记

    SyntaxHighlight language language_key 1C 1c ActionScript actionscript Apache apache AppleScript a pp ...

  3. 稀疏矩阵的存储(c++)

    0        0        0        0        0         0 0        3        0        0        0         0 0    ...

  4. 最新版-Python和Java实现Aes相互加解密

    前情 需要使用Python和Java实现同一个AES加解密算法,使Python版本加密的密文能够由Java代码解密,反之亦然. Python实现 Python为3.6版本 # -*- coding: ...

  5. spring boot +dubbo+zookeeper

    dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案. 结合本公司的开发也是用的dubbo这款优秀的框架,加上 最近工作重心的.所以对于dubbo的 ...

  6. 关于SkyApm测试部署。

    这个是skyapm的github : https://github.com/SkyAPM/SkyAPM-dotnet 它依赖于skywalking . 我是用docker去部署的.因为这样我的系统会干 ...

  7. hadoop 综合大作业

    作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3339 本次作业是在期中大作业的基础上利用hadoop和hive技术进行 ...

  8. Laravel模型事件的实现原理详解

    模型事件在 Laravel 的世界中,你对 Eloquent 大多数操作都会或多或少的触发一些模型事件,下面这篇文章主要给大家介绍了关于Laravel模型事件的实现原理,文中通过示例代码介绍的非常详细 ...

  9. nginx-rtmp

    最近使用ffmpeg推流为rtmp,进行直播.记录一下nginx-rtmp的配置.因为我们要添加ngin-rtmp模块,所以不能直接apt安装. 下载niginx和nginx-rtmp-module的 ...

  10. python2中的unicode()函数在python3中会报错:

    python2中的unicode()函数在python3中会报错:NameError: name 'unicode' is not defined There is no such name in P ...